Monte Carlo Methods for Simulation of Protein Folding and Titration