Protein purification: Principles, high resolution methods, and applications