Cooperativity in protein folding: from lattice models with sidechains to real proteins.