Nucleic acid helix stability: effects of salt concentration, cation valence and size, and chain length.