Adding start of refactored RTCMv3 implementation.

For now just writes and checks frame headers and CRCs. Unit tests included.
Cleanup and comment in bits code.
Add observation number to nav_meas_t
Don't override optimisation level flag, instead choose Debug / Release etc.
More reliable and cross platform way to seed RNG in test suite.
Add RTCM message type 1002 encode / decode and tests.
Decrease number of random test cases for coord system and lin alg.

Was taking way too long.
Linearise Sagnac rotation for speed boost. Tidy up comments in PVT.

Saves 4 trig lookups and a bunch of multiplies, only add <1mm error to the sat positions.
Consolidating constants into a sane location. Update ephemeris code to use proper GPS ICD value of pi.
Forgot to commit the crucial file...
Missing header, third times the charm...
Workaround for hang every few hours
Almanac: Exit condition for loop solving eccentric anomaly
Workaround for hang in calc_sat_pos(), iterative solver for eccentric anomaly
Adding refactored SBP code, moved from piksi_firmware.
SBP - unit tests for callback registration
SBP - handle case where len = 0 better in send_message.
SBP - unit tests for send_message
SBP - unit tests for sbp_process
SBP - fix bug where state was not reset if there was an error.

(yay for unit testing)
Merge pull request #6 from fnoble/sbp_refactor

SBP refactor