Simultaneous optimization of donor and acceptor substrate specificity for transketolase by a small but smart library