Fixed TCP fragmentation, string optimisations.

Previously single HTTP GET or POST messages were broken up across
multiple TCP packets. While okay, it did put additional load on the SPI
and Ethernet interfaces and could be fixed by preparing the entire
message ahead of time in a local buffer.
This did require some rearrangement of how httppost and ninjaMessage
were run, and a buffer (448 bytes).
The extra memory used by the buffer has mostly been reclaimed through
other optimisations:
- Fixed strings use program (flash) memory instead of SRAM.
- Build the JSON data on the fly within the packet buffer, rather than
in its own.
- Use the same buffer for reading and sending packets to/from the W5100,
as they can't occur at the same time.

Other Changes:
- strcat has a O(n) penalty to find the end of the string every time it
is run. Removed it in favour of strcpy and keeping track of where the
pointer is up to.
- Removed a few redundant or unused library or variable declarations.
- Added a few extra Serial.prints to help debug connection errors in the
future.