Update pic12_executive and gsm_module to use local build settings

- Modify scons to allow local build settings for pic12 modules
- Add settings for gsm_module and pic12_executive
- Fix unit testing to show proper target names

Update gsm_module to target both pic16lf1847 and pic16lf1823

- Update pin locations to be in module_settings.json
- Create port_definitions.h shared file that knows which pins can be made analog or not
so that we can safely try to make a pin analog or digital even if that pin does not support
it on a specific chip but the failure is not important.  Without this we get compilation
errors because the right analog register doesn't work.

Bugfixes for GSM module

- Update mib12 API to be compatible with pic16lf1847 and 16lf1823
- Update gsm_serial to allow for alternate serial port pinout
- Update module_settings.json to specify alternate serial port pinout
on v5 hardware

Update build_settings to remove last vestiges of global module configs

Bug fix on pic12lf1822

Update exceptions to make a dictionary of all kw arguments passed.

This allows for standard exception reporting and makes it easier
to pass additional information with the exceptions.

Don't drop user into a shell is first momo command is wrong

Add BuildError exception and update autobuild to catch MoMoExceptions

- default behavior prints the exception and exits with a status code of 1

Update test files to be compatible with build system

Bugfix momo shell

Add ability to programmatically generate test runners from module unit tests

- Also fix bug in finding src files specified in module tests

Remove verbose printing

Update unit tests and src to be compatible with unit test framework

- Apparently binary literals are not ISO C but a gcc extension, so
remove them from alarm_repeat_times to allow the c parser to parse
unit test files

- remove main() from unit tests since its programatically generated
now

- update system_log to keep definitions in header even when the
actual functions are not being compiled to allow for proper mocking

Update build_settings to properly compile test code without system_log

Finish work to integrate pic24 unit tests into build system

- linkedlist test is currently not passing on pic24f16ka101 for reasons
that are unclear.

Update automation/provision.sh with new package dependency

Replace uninterruptible_start and uninterruptible_end with noops in the simulator since there seems to be an issue with pic24f16ka101 simulations.  Also run unit tests by default when building modules that have tests defined.