Use size_t for write & print return, for non-AVR compatibility

Arduino's Print.h uses "size_t" as the return type for print(), println() and write().

On AVR, uint16_t and size_t are the same.  But on 32 bit platforms, size_t is 32 bits, which causes a compile error because the return types to not match Arduino's Print base class.

As a double check, I compiled this copy and the original for Arduino Uno.  The HEX files match exactly.