Moved controller mib feature into mainboard src tree

It depends on config settings that are controller specific
Allow pushing pic24 firmware and resetting the bus

- 2 firmware buckets are now reserved for pic24 (4 for other modules)
- Setting the firmware type to 5 or 6 in the push start rpc chooses
  to push pic24 firmware rather than pic12.
- new controller rpc 7,5 cuts power to the bus for 1 ms to make modules
  reset
Update commander with bus_reset functionality
Add sector definitions
Reclock controller down to 8mhz

This avoids using the 4x PLL for lower power consumption and
faster wakeup from sleep since we don't have to wait for the
PLL to stabilize
Fix analog pin to digital for bus reset
Add ability to read and write flash from commander

This opens up the ability to test all things flash from the command line.
Also, during the writing of this, I realized that you must program the
serial flash one page at a time without crossing a page boundary.  This is
very important since the writes across a page boundary alias back to the
start of the page.
Fix flash writes to allow crossing page boundaries

Added memory_write_aligned that writes at most a single aligned
page of flash.
Replaced memory_write with a version that internally divides the
passed in buffer into page aligned portions and calls memory_write_aligned
for each one in turn.
Merge branch 'dev' into feature-bootloader
Implement and test a simple flash log based fs for config data

- Described in detail in flashblock.h
- Basically allows for persisting arbitrary config data that changes
  frequently to flash and making sure that you can always read the
  latest config data even after a device reset.
Refactor firmware_cache and persist in flash

- uses new flash_block system to simply persist state across resets
- can now store and read flash images across resets
- reduced memory footprint by removing redundant variables
Add memory location for firmware_cache config
Update function signature to void* to avoid casts
Update readme with scons dependency
Don't require a port when using modtool, by default get_controller will connect to the first attached USB COMM device with a Vendor ID matching the FTDI chip (403). Potential future enhancements: Also match the Product ID, modify the VID/PID of the chip so that it is definitely a MoMo (this would require a custom driver).
D'oh.  Select USB devices that match the pattern, not ones that don't.
Update library with part name for SIM900
Make GSM board fit into 1.3x2" board.

- Removes need for separate Card Adapter board
- GSM module now has integrated SIM Card holder
Cleanup old designs into subfolder
Remove unnecessary card adapter module