Refactor sign up to use form objects. Redesign the user profile experience (also using form objects)

This includes two major updates:
We're now using form objects for the sign up process. Relevant reading: http://railscasts.com/episodes/416-form-objects and http://robots.thoughtbot.com/activemodel-form-objects

We have a brand new user profile experience with inline editing, job experiences, education, about sections.

I temporarily disabled invites until I refactor it to work with the new form objects.

We also have two new user objects, `profile` and `preferences` which move most of those columns to these models rather than having them all on the user object.

Fix #791 #792 #794 #798 #800 #803 #808 #809 #810 #811 #816 #817 #818 #819 #820
Unused method argument - `params`. If it's necessary, use `_` or `_params` as an argument name to indicate that it won't be used. You can also write as `set_attributes(*)` if you want the method to accept any arguments but don't care about them.