Add code coverage

This includes a cmake target (coverage) and integration with
coveralls.io.