Catch user validation errors on login

This is one of two PRs I have for this issue. This PR catches errors from the 'update user' events that happen during the login to update the user's status and last_login.

The errors will still occur, but will be handled nicely and not prevent login.

The problem with this is the values won't be updated in these cases - not sure if this presents a security risk, or is just lame. See my follow up PR for more info.

fixes #3658

- Catch any errors from user.save() events during login
- Fixes a problem I introduced with errors which are arrays in logError