Add linked_list primitives to pic24 with test coverage

Can atomically push and pop list items.  This will be the basis
of the new task manager and resource manager.
Made mib api region a normal psect and link in the right location

- change mib api from an absoluted located psect to a regular one
with a linker flag to put it in the right spot.  This is cleaner,
safer and better.  It also removes the ability of other psects
to inadvertantly stomp over the api.
- change the pic12 build system to pass the right linker flag
to place the the mibapi psect in the right spot
- add mibtool api command that dumps the mib api from a mib12
executive hex file.
- refactor chip specific addresses into pymomo from site_scons
so that they can be shared with mibtool easily
Add default release and test targets to pic12 executive
Modify pic12_executive unit tests to use new mib block format and size.
Remove random blank line from test_summary.py
Update pic12 build process to insert hardware type in mib block
Fix mib12_executive bootloader bugs and finish registration

- some bugs crept in during the conversion of the mib12_executive
   from primarily c to primary assembly.  Fixed them and verified
   correct programming on 16lf1847.
- replaced registration function with optimized asm version
   takes up less space and is more robust.  Uses asm memcpy function
   to pull data from application code.
Added more branching macros in pic12 assembly for readability
Rewrote mib spec macro to not use ternary operator

This makes the macro work in assembly code as well as c.
Fixed bugs in pv_module, added debug mib endpoints

There was a random bit being or'ed in with one of the voltage
measurements.  Unclear why I put it there.  I think it was to
test that the fat32 code was write something other than zeros
but it never got removed and only shows up when measuring low
voltages.

Added mib endpoints for sampling v1, v2, v3, i1 for debugging.
Add checksum calculation to mibtool

mibtool checksum <hex_file> calculates the checksum
of the application module pointed to by hex_file in
the same manner as the mib12_executive so that the programmed
rom can be verified.  The application hw type is pulled from
the mib block so it does not need to be specified.
Fixed mibtool documentation to wrap at 80 character lines
Updated mib12 template code to use .mib files
Created modtool to create module skeletons

Can currently call modtool mib12 <name> to create a new
module with the given name in momo_modules/name.  The
module compiles for all known pic12 targets out of the box.
Clean up old scripts that have been replaced

All functionality found in these scripts is now part of
either mibtool, modtool or pcbtool.
Make template command_map.asm not emit brw if the the table is empty

This helps make the pic12_executive reflasher smaller
Add explicit build dependency so unit tests are properly rerun
Add new style mibapi psect so unit tests on app modules compile
Add first version of mib12_executive reflash utility

Takes in a mib12_executive image appended after the reflashing stub,
erases and then reprograms the mib12_executive.  Invalidates itself
after reprogramming is complete and boots into the new executive.
Refactor build system config information, support reflashing exec

Add tooling support for building an application module capable of
reflashing a mib12_executive in situ.

Standardized and collected code related to processor definitions