Lots of code cleanup, some enhancements, commenting.

Lots of cleanup for the SPI library, proper variable-length transaction support, etc..

Removed build directories (why were they committed in the first place?)