Remove unneeded watchdog pop and push
Replace 2 functions with asm equivalents
Remove unneeded functions and streamline
Optimize xc8 compiler settings
Remove unneeeded clib from pic12_executive
Merge branch 'dev' into feature-exec-touches
Add executive serial number
Add include for mib definitions
Add check for dirty reset
Add two new mib executive endpoints: readmem and status

- readmem allows reading arbitrary bytes from data and program flash
for debugging.
- status reports information on the compiled version of the executive
including: a serial number, its total size, hw type and the status
register.
Add exec commands to map
Split bus_master_rpc_sync into two calls

bus_master_begin_rpc() takes control of the i2c logic from the
slave.  This must be called before touching the mib_buffer otherwise
your changes could be overwritten by an incoming rpc call.

Once you're ready, bus_master_rpc_send(address) will send the rpc
and return when it is either successful or a permanent error has
occurred.
Remove double include
Convert MIB HAL functions to assembly and streamline
Add the ability to not reset after a reflash
Create momo tool to unify toolset

pymomo.utilities.typedargs now has an annotation system for statically
typing parameters to python functions.  This allows for automatically
converting strings passed on the command line to typed parameters
like ints, strings, files etc.

This means that we can call python functions from the command line
by converting command line arguments to python arguments using
introspection since we known how to do the conversion because of
the included type annotations.

The momo tool does precisely this to allow for interacting with
module proxy objects.  I am now starting to annotate proxy object
methods with type information for use with momo.  This should ultimately
supplant most of modtool, gsmtool, reportinator and multisensor.
Add suppor for not resetting bus
Add default printing of data return types

This means that you can easily output data only when called from
the command line while returning usable python data to callers
from scripts.  The shell invoke() function now uses annotated
return data to print the return value when it is a data type.

The formatting can be overriden by printer functions if needed.
See controller.py print_module_list for an example.
Update get_module to use new annotation system

- Update 8-bit module proxy to include executive features.
Bug fix for return value