Better integration between CTest and GTest

This pull request implements better integration between CMake's built-in CTest framework and the GoogleTests we use for unit testing. Previously all GTests were run as a single CTest under 'make test', but now they are split out individually for more useful output. Additionally, unit tests are now run by default as part of the build process.

To test:
1. Create a clean build. You should see the unit tests as part of the build process output.
2. Run 'make test.' You should see several individual tests run instead of just one test.