Fix #768 User_model->find_by('both') behavior

- Moved logic for auth library into the auth library.
- Updated find_by() and find() to accept same arguments as the parent
model and pass them to the parent.
- Used lang('bf_both') for the check in the auth library, @sourcejedi
notes bf_both is not functional in non-English environments, so it must
either be added or both instances changed back to 'both' in the login
function
- Kept the "magic" $type and $return_type variables in the
newly-extended methods.