User ctrl refactor - breaks up large methods, moves some logic into mode...

I broke up some rather large users_controller.rb methods into smaller ones and moved some logic from there and into the user.rb model. I also looked into the user model itself and found that it can be broken up into some smaller models, something I've noticed that sam has begun working on. 

There's 27 failing tests for the user_controller spec, but it's due to the missing *days_visited* method that disappeared in yesterday's push, my changes appear to pass specs and work in dev.

Sam - if you would like I can give refactoring the user model a go, if not then I'll start on doing the topics controller and models as it seems much can be improved in those.

Looking forward to feedback!