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.

@drothlis: I don't like this but I don't really know what to do about it.  Any suggestions?  This wouldn't be necessary if `ConfigurationError` didn't derive from `UITestError` and `_read_lircd_reply` didn't raise `UITestError` and `VideoTestSrcControl` didn't raise `UITestFailure`