Autonomous reporting

Significantly improve GSM command handling
* Add a rotating RX buffer and implement streaming response matching
* Less restrictive response matching (just OK or ERROR, no whitespace requirements)
* Improved timeout behavior (1/2 second using timer1)
* Implement autonomous reporting behavior (meaning the radio is turned on when a stream is opened, then turned off after the message succeeds, fails, or times out after one minute)