WIP - Refactor users#update action

This is a partial WIP of the refactor asked for on #3664. After a while sitting on it, it's clear I won't be able to finish it in a timely fashion, as I'm too caught up with my day job. Hopefully this can be a good starting point for somebody else to adopt and continue?

The approach I've taken is to extract logic branches into small discreet controllers. Two so far: User::EmailPreferencesController and User::PasswordController. These also map to separate forms on the user edit page. 

Did the same to their specs. Haven't touched the cucumber features yet.