Move firmware_cache to mainboard directory b/c of dependency

The firmware cache needs to know the flash layout of the flash
chip in the mainboard.  This means it requires info only the
controller knows so I'm moving it to the controller module
Fix address handling in firmware cache and aesthetic changes

- fix 16-bit overflow in pull-firmware
Add memory test mib command
Update memory spi code for speed
Merge branch 'dev' of github.com:timburke/MoMo-Firmware into dev
Merge pull request #41 from timburke/feature-xplatform-cmdr

Working Cross-Platform MoMo-Commander Replacement: modtool
Merge branch 'dev' of github.com:WellDone/MoMo-Firmware into dev
Merge branch 'dev' into feature-eventlog

Conflicts:
	momo_modules/mainboard/src/mib/firmware_cache_mib_feature.h
Merge pull request #43 from timburke/feature-eventlog

Fix integer overflow in firmware-cache
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 pull request #42 from timburke/feature-controller-update

Finalize board layouts for pilot
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.