The best small towns in Mexico boast historic architecture, amazing landscapes, and cultural experiences rooted in tradition.