Configurable/multiple column matching in logAttempt

Optionally a third parameter can be passed to logAttempt(), which is used to match against user model. This allows more flexibility in authentication.

Parameter may be a string (ex. email), or an array of fields (ex. username, email, dealer_code).