Tests -> Allow running of a subset of tests via a simple argument.
Interfaces -> Pass through rtscts value for serial connections.

The other values (xonxoff and dsrdtr) remain unused but I don't want to mess too much
with them.

THe serial.Serial device defaults to rtscts=False so this change should make no
difference, but some devices like the upcoming BV4626 need this set to True.
Interfaces -> Remove dead code.

It seems that MODEM_PREFIX is not uses, so nuke it.
(just trying to tidy up code that confuses me while trying
to write a driver for the BV4626)
Interfaces -> Remove more dead code.

This removes the _processRegister() method that seems to have either
been deprecated or copy/pasted overzealously.

None of these methods were called.
Interfaces -> Allow the serial device to be closed.

When running tests on the BV4626 device, it appears not to initialise correctly the
second time it is opened. This is a result of not closing it cleanly when finished,
so ensure this is possible.

It may make sense to do this automatically on object destruction but I did not want
to disrupt other devices that I cannot test
Interfaces -> Add a basic driver for the BV4626

Currently this only supports setting the two relay states but I will add support for
configuring and toggling the Digital IO pins and the DAC/ADC in future revisions.
Interfaces -> Add output on/off support for BV4626

The on/off was so far able to switch the relays on and off but now we can
configure which of the 8 general purpose I/O pins are outputs and switch
them on/off too.
Tests -> Reorder the BV4626 tests.

For some unknown reason, reconnecting for each of the tests doesn't
work all that great. Reordering the tests seems to work around this
problem.
Interfaces -> Add a wrapper class around on/off commands to BV4642 for Maplin Wireless Sockets

These sockets plug inline into mains outlets and receive a wireless signal to
turn them on or off.

A trivial reciever module can plug almost directly into the output pins of
several receiver boards (e.g. the BV4626 or Ardino, RPi and no doubt others)
and via a simple signal control these sockets.

This code was partly borrowed from https://github.com/dmcg/raspberry-strogonanoff

The above page contains links to the following resources:

http://www.maplin.co.uk/remote-controlled-mains-sockets-5-pack-348217
http://proto-pic.co.uk/434mhz-rf-link-transmitter/
http://www.fanjita.org/serendipity/archives/53-Interfacing-with-radio-controlled-mains-sockets-part-2.html
Interfaces -> Only write state if it's different from the last one.

This should avoid writing data to the device when we don't absolutely
need to.
Tests -> Tidy up tests for BV4626.

This removes old, copy+pasted tests and adds a cleaner instantiation so the
options at initialisation do not need to be specified twice.

Also adds additional testing for the Maplin Wireless Sockets.
Tests -> Speed up mock BV4626 tests.
Interfaces -> Ensure any wireless sockets are properly configured as output pins.

Otherwise this does not actually send any signal on the wire.
Interfaces -> Ensure any maplin switch toggles trigger a connection.

When testing I usually triggered a connection via some other output pin
flip, so there was generally a connection already.

However, if there were no other triggers to do the connection, it could
be the case that the connection is not alive.
Interfaces -> Convert Maplin switches to a callback.

This generally makes them more useful generally and thus can be used by other
interfaces more readily.
Interfaces -> Move the Maplin Wireless Socket helper class to a separate file.

This code is theoretically usable from other interfaces with minimal effort, so split
it out to be nice to others who may want to use it.