Extracting user, person, profile creation

Our user create and update was getting complicated. The complication
also impacted our tests (which were slow).

Closes ndlib/planning#180
Tweaking person vs. user specs
Updating DeviseShim
Further tweaking the devise controller
Adding delegation of user attributes to person