Merge remote-tracking branch 'upstream/dev' into robustify-gsm-module
Make the GSM interface more robust.  TODO: message sending can fail silently, timouts *shouldn't* happen for successful commands but it's possible they could, causing an RPC 6 (unknown) error response.
Merge pull request #55 from timburke/pic24-rpc

Fix PIC24 MIB code
Merge remote-tracking branch 'upstream/dev' into robustify-gsm-module
Cleanup some leftover whitespace/comment changes
Merge pull request #56 from amcgee/robustify-gsm-module

Score!  Timeouts are good.  Merging this.
Finish v1 of multi_sensor board

Board is based on the elec_sensor_sd board previously made but with
the following changes:
- removed SD card b/c of space
- added sensors
	+ pulse counting (turbine flow sensor)
	+ 3 voltages from 0-30V
	+ 1 current from 0-15A
	+ external serial connection bidirectional and 5V tolerant
	+ wheatstone bridge sensor connection
	+ differential analog voltage
	+ pressure sensor (SM5470 for venturi sensing)

All of the analog sensors are built around a digitally controllable
instrumentation amplifier AD8557.  It's a pricey part but should
give us a lot of flexibility for retargeting the board in the future
and it lets us avoid needing to do lots of calibration.

Other key feature is that all of the analog sensors can automatically
have their input offset voltage nulled out because 2 muxes let you
switch the input polarity of any input.  The signal will then change
sign but the offset will not, so you can determine the offset voltage
without manual calibration.  The AD8557 can be reprogrammed in the
field to change its gain and output offset to compensate.
Update BOM descriptions and footprints
Final layout touches
Connect Vclamp and Vdd on in-amp

Vclamp is specified to not be floating even when not in use.
Merge pull request #58 from timburke/pr-multisensor-board

Finished multi-sensor board
Update README.md
Turn memory off by default when sleeping
Prepare controller for sleep
Add ability to have the controller sleep when no work is pending.

Wakeup is automatic upon scheduled task or reception of a MIB message
Fix formatting bug in rpc error handler
Add support for sleeping controller
Make all flash routines wait for completion of op

This is so that we cannot enter a state where the controller goes to
sleep and powers down the memory before a write operation has finished.
Add callback for deciding when to sleep

This lets users of task_manager decide programmatically when
they can sleep based on information that task_manager should
not know about.
Update to use new task_manager flags API