re-enable serial code

You know... it helps to use the correct board profile when compiling
the serial code.
add default messages for different badge types

read the last byte of eeprom to get the badge type and then use it to
look up a default message for that type of badge, if no message is
defined.

Also, only show the demo loop on startup if there is a message or
badge type defined. Otherwise, show the demo loop endlessly.
verify loaded message matches stored CRC
replace pixel demo with single-row demo
store crc big-endian
update serial programming protocol

update serial programming protocol to be more resistant to noise from
handling.

To update, send 9 garbage characters to make certain you are in the base
mode. space or newline work well for this.

Then:
To update the message:
1. Send three 0x03 characters
2. Send the message length
3. Send the CRC32 of the message (big-endian)
4. Send the CRC xor message length (on each byte)
5. Send the message

To change badge type default message:
1. send three 0x01 characters
2. send the badge type number three times (in ascii)
   0 = Speaker
   1 = Staff
   2 = GrrCON
   3 = VIP

The default message is only displayed if there is no other message
programmed, or if the programmed message has been corrupted (which
is not likely to happen).
fix code to match last commit comment

in the previous commit, I said the badge type was sent in ascii and
that the badge type change attention sequence was 0x01. I forgot to
make the changes to the code to match.
add tools to program badges in batches
missed in previous commit of this file
allow programmer to be specified in environment
forgot to add n to badge type check
a version of doboard that only loads the avr
add python util to set badge type
give message that we're done sending
add pseudocode of the programming protocol
Merge branch 'master' of github.com:mfarver/GrrCON_2013_Badge