Fix overflow and indexing for cloud serial buffers
Fix overflow and indexing for cloud serial buffers

The send buffer was not being null terminated, so spark_send_event would
keep reading until it hit a zero byte, resulting in unexpected
characters being sent at the end of the message. Added this null
termination.

Also, the previous head and tail indexing approach meant one byte in the
buffer would never be used because an empty buffer and a full buffer
both have head == tail, so it would be impossible to tell the
difference. Changed to head and count indexing which avoids this issue.
Since the maximum event data length is 255 bytes (see Messages::event()
in messages.cpp), reduced MAX_SERIAL_BUFF by one to match, as we can now
use all bytes of the buffer.

pfeerick/OakCore,digistump/OakCore,pfeerick/OakCore,digistump/OakCore,digistump/OakCore,pfeerick/OakCore,digistump/OakCore,pfeerick/OakCore,digistump/OakCore,pfeerick/OakCore