Quantum refinement — a method to determine protonation and oxidation states of metal sites in protein crystal structures