Merge pull request #311 from cgruber/compiletesting

Use Google's compile-testing system
Move integration tests into organized folders.
Move tests into more organized folders.