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.
Update version requirement for python-requests
rosie refactor: update date format, doc, etc
Fix tests
rose.config_tree: improve pep8 and pylint scores
rose.config_tree: store file lists

If a relative path can be found in 2 or more locations in the linearised
inheritance, it will store the configuration locations in a new list.
Use rose.config_tree to load metadata

Part 1.
rose.macros.trigger: use rose.config_tree

to load metadata.
Merge branch 'master' into refactor-rosie.ws_client
file install: rsync: fix sub-dir handling

File install rsync mode was failing if source is a directory with
sub-directories. This was due to an incorrect cast of the access mode.
rose_arch: print return code as part of event

This gives us better confidence when an archive command fails to do what
it does but still return zero.
rose edit: um stash widget: record help change
Merge pull request #1403 from matthewrmshin/fix-file-install-rsync-dir-with-sub-dir

file install: rsync: fix sub-dir handling
Update CHANGES.md
rosa svn-post-commit: only trunk notification

Only notify `rose-suite.info` changes on trunk.
Merge pull request #1407 from matthewrmshin/fix-rosa-svn-post-commit-branch-notification

rosa svn-post-commit: only trunk notification
Merge pull request #1404 from matthewrmshin/rose_arch-print-ret-code

rose_arch: print return code as part of event
SSH -oConnectTimeout=10 as default

This should fix any hang up problems when hosts not available.
Merge pull request #1408 from matthewrmshin/ssh-connecttimeout

SSH -oConnectTimeout=10 as default
revert style changes