Convert all sprintf calls to snprintf

This prevents writing outside of buffer boundaries, possibly truncating
strings (but C99 says snprintf should guarantee nul termination even
when the buffer is too small).

This commit just does a regex update of all calls so this is not very
smart about the length passed to snprintf (it duplicates a lot of strlen
callls that should be refactored later as well).
Add (commented) snprintf overflow check macro

This is a bit of a hack, but it should serve for debugging for now.
Use strncpy_P instead manually looping with sprintf

This saves a ton of strlen and strcpy calls and instead uses strncpy_P
which just loads a string from program memory.
Use strdup in leadIncoming

This also does malloc + strcpy, but is a bit shorter.
Better handle malloc failures

If for whatever reason the memory is actually depleted, this prevents
using NULL pointers and completely screwing up things.

Note that this does not properly handle realloc failure yet, see #78.
Remove announceQ

This implemented a linked list of pending announce packets, but LWM
already implemented such a linked list.
Log errors in announceConfirm
Don't let lead scouts broadcast their HQ reports

There is no need, if they send it to HQ directly then they shouldn't
also broadcast it. If we eventually support multiple lead scouts per
troup, we might need to revisit this part.

This commit seems to improve stability, but that's probably not because
it actually fixes things, but more that the reduced mesh traffic
prevents other problems from being exposed.