Longstanding bug/oversight in firmware dating back to MBI's 3.1 firmware or earlier; was possible, owing to interrupt-driven nature of packet handling and state changing, for this non-interrupt level code to handle one packet and then, owing to the lack of the 'else' then hit this clause and execute it as well
Longstanding bug in firmware dating back to MBI's 3.1 firmware or earlier.  In gcc and avr-gcc an enum is a two byte value and thus the enum used for the packet state is not interrupt safe: non-interrupt code can check the state which is a non-atomic operation in some cases on AVRs owing to the 2 byte nature of the field.  While that non atomic check is happening, the interrupt level code can receive another byte or two or three and change that state field thereby causing a problem when the interrupt exits and the non-interrupt level code then continues its check of that field
Add in Z_HOME_MAX, X_HOME_MIN, and Y_HOME_MIN defines to aid folks with bots which home Zmax, Xmin, and Ymin.  This makes a difference as regards clearing the build platform
Merge pull request #66 from jetty840/dcnewman-merge

Dcnewman merge