User Model Improvements

Validate next parameters with a hmac, allow login with username or email address
If anything goes wrong here, we want to fall back to the fall back. We could enumerate the possible exceptions that can occur there, but the outcome would be the same.