Huge commit. Major refactor of user model and all methods invoked.
Merge branch 'feature/gravatar' into develop