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.
Any sorting ever occur on the prefixes? Looks like the ordering can change over and over.