rosie.ws_client: support multiple sources

Plus:
* Refactor.
* Pass `pep8` for relevant modules.
* rosie.ws: fix `all_revs` logic.
* rosie lookup: basic multi source tests.

Resolve #531.