Integrate coverage.py to CI

Make the CI fail the build when if the test coverage drops below 95%