Catch user validation errors on login

fixes #3658

- Catch any errors from user.save() events during login
- Fixes a problem I introduced with errors which are arrays in logError