Recursive Ensemble Mutagenesis: A Combinatorial Optimization Technique for Protein Engineering