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.
Merge pull request #126 from timburke/feature-buildfix

Unit Testing Support for pic24