type-safe radix constants

The `HEX`, `DEC`, `OCT` and `BIN` constants defined in `spark_wiring_print.h` were previously #defines

e.g. #define DEC 10

This meant their values were implicitly typed integer. The various print methods in `Print` use an `int` for the radix, so no problem, but in `String`, the corresponding methods use an `unsigned char`, causing the compiler error.

Ideally we would change the `String` interface to use `int`s for the radix, but without more testing that could break code. 

This fix gives an explicit type to the constants so they can be used with both `Print` and `String`.

Also changed the buffer size to fix buffer overflows when converting large values to binary, and fixed the case of converting INT_MIN.