Separate basic testing and coverage testing in makefile targets.

This makes `coverage` an optional dependency.

`make test` tests without coverage.

`make test_with_coverage` does the obvious.

.travis.yml updated to use `make test_with_coverage`.