Implements profile updating.

- Could really afford to take the button text logic out of the view...