The chemistry and engineering of affinity chromatography