Cleanup and reorganization

 - Move out Windows and linux specific code to make system more flexible
 - create "pending" state with updates to github, which also
   coincidentally allows us to spread testing across devices because a
   build will not continue if pending status cannot be created.
Cleanups for multiple compiler support
Add the ability to parse errors from cmake

Also handle and report on unhandled levels in the ruby code