Travis: Cope with ftpmirror.gnu.org being down

Sometimes builds fail because ftpmirror.gnu.org is down.  With this change
Travis will fall-back to downloading GNU parallel from main GNU FTP site
instead if the mirrors fail.  Failing that we don't bother with GNU
parallel at all and gracefully degrade to running the tests in series.
Merge pull request #231 from wmanley/parallel-failure-robustness

Travis: Cope with ftpmirror.gnu.org being down
stbt.py: uri_to_remote: Make `display` argument optional

It is only required if instantiating a test remote, whereas we want to
use `uri_to_remote` more broadly in tests so the tests exercise the
production code-paths more often.
Tests: Pull _fake_lircd into seperate function

So we can use it in a subsequent test.  We also:

* Fix a potential race condition by removing a `sleep`
* Make `_fake_lircd` generally more robust to changes in stbt's
  implementation
* Fix a potential race condition with use of `tmpname()`
* Avoid polluting `/tmp` with old no-longer-listening sockets
* Make the `test_that_lirc_remote_is_symmetric_with_lirc_remote_listen`
  test more readable.
* Use multiprocessing rather than thread for improved robustness
stbt.py: stbt.uri_to_remote(lirc): Fix defaulting parameters

Commit 1cd69253 refactored the code for generating remote control objects
into a uri parser (using the `re` module). However, due to the fact that
in regex a glob '*' can match anything including an empty string, there
was a problem in that if the (optional) lirc socket parameter were omitted
"" would be passed to `new_local_lirc_remote` rather than the expected
`None`.

With this commit I change the pattern for optional parameters from `(.*)`
to `(.+)?` to ensure that the group will not match (`None`) rather than
matching the empty string (`""`).

Thanks to Lewis Haley for reporting, diagnosing and creating a candidate
fix in drothlis/#193.
stbt.py: stbt.uri_to_remote: Fix defaulting parameters

In the spirit of the previous commit this commit tightens up the
`uri_to_remote` regexes and ensures the tests are using `uri_to_remote`,
etc. to ensure the codepaths are better trod.

Having done this I came across some bugs in `VirtualRemote` parsing code
which had gone unnoticed.  I wonder if anyone is actually still using
`VirtualRemote`.  Perhaps they should be deprecated and then considered
for removal?