Issue #720 document existing code better

Also refactor "saveObjectToSD" to "saveObjectToFlash". Added better inline
documentation for existing object saving methods, corrected several debug
typos.
Issue #720 Remove multiple retries from SmartSave

We were having a double amount of retries, one from SmartSave, one from
the telemetry layer. Now only the telemetry layer does the retries.
Issue #720 update UAVTalk protocol to send NACKs when receiving unknown ACK'ed objects

This update introduces a backward-compatible update to the UAVTalk protocol: when receiving
an object for which an ACK is expected is return, and the receiver does not know the object
(ObjectID unknown), then instead of dropping the object, send a NACK with the ObjecID.

The most immediate side effect is that this avoids a situation where the GCS tries to
send a settings object that is unknown to a board, and goes through multiple timeouts. Now,
when sending a settings object that the board does not know, the transaction will fail right
away.
Update license headers
Merge pull request #673 from lilvinz/f1cmsis_update_bool_fix

PiOS F1 Cleanup 1/2
Merge pull request #734 from elafargue/smartsave_fixes

#720 : resolve the slow SmartSave issue
all makefiles: use -fshort-enums to save some memory