rosie.ws_client: support multiple sources

`rosie.ws_client` is modified to work with multiple prefixes.
Use `multiprocessing.Pool` to send requests to the sources in parallel.
This requires a pickle-safe version of python-requests.

The `--prefix=PREFIX` for `rosie go`, `rosie lookup` and `rosie ls` can
now be specified multiple times. The lookup mode is rationalised into a
single option, with aliases.

`rosie go` updated to allow users to select any data source combination.

`rosie.suite_id`: The logic to obtain other user's local copy root is
not ideal, but there is no easy way to make it more general, so accept
that we hard code at the moment.

Tests:
* t/rosie-ls: new basic tests.
* t/rosie-lookup: new basic multi sources tests.

Other changes:
* Refactor.
* Pass `pep8` for modified modules.

Resolve #531.
`blame -C` tells me that this line is yours, so can we have an ISO 8601-compatible string like:
`%Y-%m-%dT%H:%M:%SZ` used with `time.gmtime`?

The `%z` used with `localtime` is meaningless in Python's datetime handling - it will always be
`+0000`).