Tests for irnetbox.py and `stbt run --control=irnetbox`

These aren't intended to test that the protocol is correct, because I
implemented both ends (`irnetbox.py` and `fake-irnetbox`). I know that
the protocol is correct because I've tested irnetbox.py with a real
irNetBox device. However these tests give us some confidence that the
"glue" code around the sending of signals is correct.

`tests/fake-irnetbox` listens on an available port (and prints
"PORT=xxxx" to standard output), and just acks every message it
receives.

`irnetbox.IRNetBox.__init__` and `stbt run --control=irnetbox:...` now
accept an optional `port` parameter, when using the fake-irnetbox's port
-- a real irNetBox always uses port 10001. Since this is only for use in
the unit tests, it isn't documented in `README.rst`.

Note that `tests/run-tests.sh` now sets `PYTHONUNBUFFERED=x` so that
`fake-irnetbox`'s output goes to `fake-irnetbox.log` immediately;
otherwise the output is fully buffered and the test
`test_irnetbox_commands` fails with "error: fake-irnetbox failed to
start". See
http://docs.python.org/2/using/cmdline.html#envvar-PYTHONUNBUFFERED