Metabolite biosynthetic enzymes: catalysis, substrate specificity and protein engineering