Merge pull request #51 from amcgee/dev

Looks good to me.  Sorry about breaking things with my previous commit.
Update MoMo FSU with modular connector

- relay out to fix Polycase USB-31 case.
- board is finished and ready for fabrication
Create a virtual development environment with all dependancies automatically download and installed in a self-contained VM.  Use Vagrant to manage the virtual machine, tested with Vagrant 1.5.1.
Remove the xc8/xc16 installers from the VM since they're cached on the host.
Merge pull request #52 from timburke/feature-newfsu

Update MoMo FSU with Modular Connector
Check exit codes when installing xc8 and xc16, otherwise when the 32bit compatibility libs aren't present (they should be) it will fail silently because .run files are weird.
Install rake and include 32bit stdlib so we can build pic24 projects and run unittests in sim30.
Merge pull request #53 from amcgee/vagrant-dev-environment

Create a virtual development environment
Fix PIC24 MIB code

- Now rpc_queue queues mib_buffer along with the rpcs
- Attempts to wait until the bus is clear before transmitting
Merge branch 'dev' of github.com:WellDone/MoMo-Firmware into pic24-rpc
Fix bootloader code to not have a hardcoded reset vector

This reset vector can and apparently does change frequently so
fetch it by reading the first 2 words of flash.
Current version of demo code in pic24
Demo Momo Reporting Data
Streamline PIC24 MIB code
Add debug flag endpoint for testing
Update pic12_executive to use new mib version.

- slave mode sends return status + return value on all reads rather
than sending the return status on odd reads and value on even reads.
This makes the code simpler and more robust.

- master mode now expects slaves to return status+value as above
Streamline, fix and update pic24 mib code.

- (master) no longer send unneeded write to clear the bus.
- (master) always read the return status and value together
- (slave) always send return status+value on all reads, rather
than alternating
- (master) make sure the bus is idle before starting an rpc

The last change listed above makes the pic24 multimaster compatible.
The pic12 code has been multimaster for a long time but multimaster
support was lacking on pic24.  This is now fixed.  A MIB rpc call
should no longer fail ever now, even if the bus is locked.  The pic24
will simply requeue the command and try again later.

If there are intermittent RPC failures, this is a bug and should be
reported for fixing.
Add ability to inspect i2c status register on fsu

This is useful for debugging multimaster issues to see
what the PIC thinks is happening on the bus.
Turn off demo mode
Merge pull request #55 from timburke/pic24-rpc

Fix PIC24 MIB code