Allow multiple args to hq.Report.  Fix key leak

This allows multiple arguments to be passed to hq.Report().  The functionality was all there, but the checkArgs() call at the top of hqReport() was checking for exactly 2 arguments.

Also noticed a bug in arg2array.  It was allocating a "sticky" key for each string argument but not freeing them.  I changed the "at" flag from 0 to 1 to allow keyLoop to automatically free the keys on each Bitlash loop.  hq.Report still reports the correct data but now it won't fill the key table.
just cleaning up wifi/backpack flow a bit
fix crasher where the analog pin index was wrong
normalize another bitlash defined reference, thx @drogge from #128
the key lib should not be enforcing limits here, thx @drogge from #128
fix the key printf formatting to actually match the getarg result, thx @emcmillan from #139
Merge pull request #141 from emcmillan/patch-4

Allow multiple args to hq.Report.  Fix key leak
experimenting with lead scout bridging at the socket level
Merge pull request #146 from Pinoccio/backpacks-align

just cleaning up wifi/backpack flow a bit
fix the intentional conflict from the wifi change
don't short-cut any announcements in case someone else is listening
Merge pull request #147 from Pinoccio/hq-bridge

experimenting with lead scout bridging at the socket level
Let pin.save actually save again

The startup function that stores the pinmode and value was still
generated, but in commit b33ab26 (trying to fix the bitlash re-entrant
issue) the actual doCommand call that saves it was (accidentally?)
removed. pin.save would still set the pin mode, but it would not be
saved across reboots.
fix an old use of char instead of stringbuf for a report
add millis to all reports at creation
Merge pull request #153 from Pinoccio/report-millis

Report millis
Remove incorrect logic around pin reports firing
Revert "Remove incorrect logic around pin reports firing"

This reverts commit ee48a168fb03b3e1437db986578bf81c17bb9eb9.

This code is about to be rewritten anyway and reverting this commit
makes rebasing the ongoing pin mode restructure work easier.
Make getRegisterPinMode always return the actual pin mode

Previously, it returned -1 for disabled pins, but thats mixing up
physical pin modes with logical ones.

Note that this method is not currently used, but it might be again in
the future.
Add constants for pin modes

There were already some constants, but these were a mix of the Arduino
pin mode constants and some extra defines). This unifies this to a
separate enum with PINMODE_* constants, which are used everywhere
Pinoccio pinmodes are used.

In setMode(), the Pinoccio and Arduino modes are still interchanged,
this will be fixed next.