Message::find off-by-one + bad initialisation fix.
Avoid a potential radioOpDone endless recursion.
Add dataType: "serviceId" to the No such service error.
Closure-based attachGPIOInterrupt API.

Similar to how we allow registering an object's method as a timer
callback, also allow the same trick with GPIO change interrupts.
Make radioBusy always an uint8_t.
Move the typeTable to pgm space, except names.
Move type names to pgm space too, adapt API.
Move error messages (die()) to pgm space.
Handle BADISR just in case.
Convert ~x to x != 0xff to fix generated assembly.

For some reason avrgcc-4.3.2 optimizes away ~*gpio used as a condition,
causing us a very tricky to occur that could only be seen in the
final assembly.  If *gpio was marked volatile, it would still only
compile to "ld <reg>, gpio".  *gpio != 0xff seems to generate the
correct code.  Compiler issue?
Add missing uint64_t cast, improve avr code.

This fixes a bug where the left shift loop was only int-sized, i.e.
16-bit on avr, potnetially causing bad things to happen.  It also
generated terribly inefficient avr code where the result of the loop was
then sign-extended, and'd and or'd byte by byte, etc.  Now avrgcc uses
__lshrdi3 which is more space-efficient and possibly more cpu-efficient,
although still quite subotimal.  Eventually we should get rid of all
64-bit operations.