Add test coverage measurement and reporting

- Implement coverage functionality as a setuptools Command subclass
  (in plinth/tests/coverage/test_coverage.py)
- Register the new 'test_coverage' command in setup.py
- Modify the INSTALL file to specify python3-coverage as a new dependency
- Modify the HACKING file to document the new 'test_coverage' command
- Have git (via .gitignore) ignore the '.coverage' output data file and
  the contents of the 'plinth/tests/coverage/report' directory
print coverage at the end of the test; minor pep8 fixes
Don't fail setup.py when without coverage module
Add explicit license from test coverage script

The license on the blog post is GPLv3+.  The derived work can't be of
any other license but GPLv3+.
Move coverage to test dependency and install it properly

- Coverage should only be required if running tests

- When running test_coverage command all the install dependencies and
  test dependencies should be installed.
Minor styling fixes for test coverage script