do not silently pick characters in wildcards

This PR changes the translation code in a way such that for wildcards in codons, the previous behaviour of picking the one possible base from the wildcards for the translation is replaced by returning the undefined amino acid X in the case of wildcards in the first and second base position, and to test for equivalent codons in the third base.
This does not cover all possible cases in all possible translation tables (i.e. it might return X where a combination of wildcards in one of the first two positions would result in a non-X amino acid), but it will not return a specifix amino acid for an unspecific codon.