Kinetic, energetic, and stereochemical factors determining the molecular recognition of proteins and nucleic acids