Completed support for username taken on create user page.
Switched to using prototype for controller - this seemed to reduce the
level of nesting and simplified testing.