Rename API resource object "fields" to "_fields"

The internal fields dictionary should have been made "prviate" when
refactoring the API client to pass out actual resource objects instead
of wrapping them. This change corrects that mistake.

Reviewed at https://reviews.reviewboard.org/r/5137/
Add the requested hostname to the Perforce repo path lookup.

When attempting to find aliases for the requested hostname for a
Perforce server, we were assuming that gethostbyaddr would return the
original hostname as the first result. This isn't always the case,
though. We now factor in the original hostname in this list.

We also now simplify repository lookups in the case where there are no
aliases by returning the repository path directly instead of a list of
repository paths. That prevents having to fetch the whole list of
suitable repositories server-side and scanning through them for matches.