fixed hex usart functions, increased TX buffer

hex usart functions were omitting some zeros as part of the 'remove
leading zeros' stuff, I'd tried to do something smart and wasn't smart
enough, so I've re-written it to be simpler and more effective.

tx buffer is now 2048 bytes.

mainly working on the test mode for gathering impulse test data on the
arduous journey to designing PID values