Cleaned up the Makefile.

- Updated coverage-annotate target to generate HTML output instead.
- Updated list of PHONY targets.
coverage Makefile target chains return value of run_tests.py

This way `make coverage` can be used as the testing command for CI.
Ignore coverage-html directory.