Cleaned up a few warnings and fixed strict-aliasing

Cleaned up warnings about unsigned types, unused variables, and
declarations.

Explicitly declare char as signed for cases when compiling with
-funsigned-char.

Fixed strict-aliasing issues in IPAddress.h.

Fixed array overrun where EXTERNAL_NUM_INTERRUPTS was defined too small.