Dhalperi bmyerz myrial

1. Merge master
2. A few style fixes
3. Trying to make the platform tests more rigorous and with better code coverage.
    a. Make the platform test an abstract class so we get static errors when some functions aren't implemented
    b. Improve the code coverage of Grappa by waiting to skip tests until after the code is generated. We may find some other errors this way.