Reorganise code into seperate files

This makes sense because these new files have no dependencies beyond the standard Python libraries, unlike `stbt.py` which depends on GStreamer, OpenCV, etc.  I'm doing it so I can reuse the remotes in fake-lircd which will
allow proxying the use of any of these remotes over a socket.

In #201 I did just that:

* `ConfigurationError` derives from `Exception`
* `_read_lirc_reply` raises `RuntimeError`
* `VideoTestSrcControl` raises `RuntimeError`