'Checks to see if a user with the given id exists. Will check case
insensitively, but will return None if there are multiple inexact
matches.
Returns:
tuple: A 2-tuple of `(canonical_user_id, password_hash)`
None: if there is not exactly one match'

@defer.inlineCallbacks
def _find_user_id_and_pwd_hash(self, user_id):

    user_infos = (yield self.store.get_users_by_id_case_insensitive(user_id))
    result = None
    if (not user_infos):
        logger.warn('Attempted    to    login    as    %s    but    they    do    not    exist', user_id)
    elif (len(user_infos) == 1):
        result = user_infos.popitem()
    elif (user_id in user_infos):
        result = (user_id, user_infos[user_id])
    else:
        logger.warn('Attempted    to    login    as    %s    but    it    matches    more    than    one    user    inexactly:    %r', user_id, user_infos.keys())
    defer.returnValue(result)
