Initial implementation of autoload of devices

This change specifically allows this:

    from iotoy.local import sumobot

    sumobot.forward()

That is autodiscovery and import of a device by name from the local
network.
Packaging improvements

Removal of whitespace, deletion of junk notes, better makefile for
development testing (purge old version), removal of spurious quotes.
serial_io and arduino_cli implementation

First pass of a serial_io object - wrapping up communication
with a serial device, and an arduino CLI that simply communicates
with the arduino device using the serial io - allowing simple
command line interaction with an arduino.
Creation of the TestHost and device oriented fixes

The TestHost was the first host to be run (successfully) on a device
that was actually the TestHost - rather than something small and minimalistic.
One of the things it showed up is that the original "return a string" style
API had memory issues on real devices - even the Atmega 328 failed to have
sufficient memory to run the API completely for this - even though the Atmega8
handled things like the BotHost reasonably well. This is due to the sheer amount
of memory used in the highly constrained environment. As a result, the
code was changed to the form found in this commit and to fit inside a real world
device.

Initial versions of the TestHost

BUGFIX: Changes to allow working on actual devices.

Return 404 for unimplemented things which are called

Redo to fit with changed core API

Change example to fit changed device internal API
Changes to enable introspection of an arduino

This now actually works - marking the first time a device has been introspected
from python, and a description of the device created that is sufficient to
allow the device to be actually properly understood at the python level
sufficient to create a proxy object with the device's characteristics.
Default baudrate upped to 19200 in the interests of doing things a little quicker
Allow debug to be toggled on.
Testing of the test host on an arduino
Initial webhost for a device.

Works pretty much out the box, just replaced commandio with serial_io,
and removed references to checking for a commandline thing.
Implement ftoa for arduino, and fix python code appropriately

snprintf doesn't work on the arduino, so this implements a simple ftoa
for the arduino code. This code only operates to 3 decimal places.

As a result the python code which tests the value of pi can be stored and
retrieved (3.1459) needed to be changed to 3 decimal places.
Test an actual device that its web API works

And it does! Win!
Python files that operate on mocks renamed

Most of these files were things like "test command host" etc.
They've been renamed to make it clearer they operate on a mock
(command line based) command host.
Added initial version of debug tracing.
Retired OvenSpike and Impractical CommandHost

The Ovenspike was the original demo idea, but a) isn't very exciting
and b) doesn't relate to a physical device. It's therefore been retired.

The arduino CommandHost likewise originally used arduino String objects
but these eat up too much memory on a Atmega8 and as a result char* needs
to be used there. Originally I considered having 2 versions (a non-tiny and
tiny version), but after extensive work, this looks like it would be too
much to maintain in the long term, too confusing for new users and also
lead to confusion about memory usage issues. As a result that's retired too.

For now, both have been shifted into an "attic" allowing browsing of historical
stuff for convenience, but otherwise no longer used and deprecated.