Protein evolution by "codon shuffling": a novel method for generating highly variant mutant libraries by assembly of hexamer DNA duplexes.