Molecular Recognition of Synthetic Polymers and Biopolymers with Small Molecules - Applications in Materials and Medicinal Chemistry