Refactor invocation of the virtual __go__ API service.

Change-Id: Iaad0ae2b00c32d4d4b1c46dc6e9eed06ad91f744
Rearrange how the user package gets its data.

By using a virtual API call it can more easily be intercepted in aetest.

Change-Id: I80bb11d1ed74b3316fe77a32bc77cb6c749e353a
Add go_package option directive to all protos.

This forces the Go package in the generated code to match the dir name,
which makes these packages easier to handle for some tools.

Change-Id: I8777a5744d53eb2494a1554de07de8869092e7a5
Dial API host with a timeout.

This shouldn't usually matter in production, but it can happen in
tests. It's more helpful that an API call times out entirely, rather
than only timing out if the dial succeeds.

A more proper implementation (using the API call's timeout) would
require a separate HTTP client per API call. A uniform 500ms timeout
seems like a decent compromise.

Change-Id: Ie4d4ed4d9e066d00b429ab23d16f2eb19a4fa74b