Fix phlcon_user.UsernamePhidCache to handle error

Handle the case where one or more hinted usernames don't exist when
retreiving phids in UsernamePhidCache. Raise UnknownUsername if the
directly requested username doesn't exist.

Raise OneOrMoreUnknownUsernames from query_users_from_usernames() in the
case where we the number of returned users differs from the number of
supplied usernames. This enables us to handle the specific error in
calling code.

Add some tests to exercise UsernamePhidCache, in particular the new
logic to handle unknown usernames.

Test Plan:

Update docs, exercise the new code with the new test and running the
arcyon exercises by running
$ ./precommit.sh