Singlet-triplet splitting in double quantum dots due to spin-orbit and hyperfine interactions