Contextual constraints on synonymous codon choice