SBP refactor

SBP code was isolated from piksi_firmware and refactored to have a cleaner API for inclusion into libswiftnav. Unit tests have been added.

SBP protocol has been modified to have the following structure:

Byte |  Value
--------|--------------------------
   0   |  Preamble (0x55)
   1   |  Message Type LSB
   2   |  Message Type MSB
   3   |  Sender ID LSB
   4   |  Sender ID MSB
   5   |  Payload Length (n)
6..5+n | Payload
 6+n | CRC LSB
 7+n | CRC MSB