Reliability and Consistency Improvements

Infrastructure changes to make the Audio module more reliable:
* Locks the SPI bus while the audio module queue is not empty
* Removes the necessity of the ready event
* Fixes error handling to be consistent with Node conventions
* Heavy commenting.

This PR is dependent on [the relevant firmware PR landing](https://github.com/tessel/firmware/pull/116).