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.
This change is picked up by `pep8`.

There are some subtle differences. `if record` will pass if e.g. `record == 1` or `record == "foo"`. `if record is True` will only pass if `record == True`. I have considered the latter, but I thought it is safest to preserve the original logic.