Computation of Protonation Patterns for Organic Compounds and Transition Metal Complexes