Crossing fitness valleys via double substitutions within codons