first commit in public repository, still needs plenty of work
more functions in messages
some work on classes
little works for base
Use "new" instead of allocating the manager on stack.

Objects on stack are destroyed when we reach the } at the end of the
constructor so the reference saved in "Sensorino::manager" would become
invalid at that point.
3 example Service implementations and refactor Service.h.

Add three example Service implementations to guide the Service API
implementation, and refactor Service.h in order to match the derived
classes.

We may wanna move the example service (Switch & Relay) to a subdirectory
or something, later, for now let's have them as a guide?  Also they're
simple enough that I think we can leave them in the library so that
people can just instantiate them.

None of this has been compile tested yet...
Add declarations in Message.h needed to implement Service.cpp
Service.cpp added + relevant changes to Sensorino.h/cpp.

I forgot to add Sensorino instance pointer to the constructors so for
now let's use a global sensorino pointer.  It's easy to remove anyway
but let's discuss first.
Clean up trailing whitespace, make indent uniform across Message.h.
Dummy untested implemenation of Sensorino.cpp.
RelayService: typos fixed.
Partly redesign the Message class, add deserialization.

 * slash the header size by two.
 * always store current state as a raw buffer, ready to be parsed or
   sent over to the remote end.  This way when the user is ready they
   can just grab the raw buffer and send it through, and we avoid
   parsing stuff that we don't need.
 * also actually implement parsing of incoming raw buffers.
 * add all kinds of accessors for other classes to use.

Untested, and it looks like the integer coding is not correct (always
uses two bytes instead of depending on the value), but at least
serialization and deserialization should be symmetric.
Move private constants from Message.h to .cpp.
Fix usage of msg types in Service.cpp.
Implement Sensorino::onRadioMessage().
Implement Message::send().
Don't die on unparseable messages, parse as GARBAGE.
Missing method declaration (implementation WIP).
Stub implementation of Sensorino::attachGPIOInterrupt().
No point updating "pos" before returning.

It could be confusing, too, since we weren't skipping the full potential
length of the TLV.