Preserve the trace function in @coverage

Improves test coverage measurement of profilehooks's own tests.
Bump version number

Why haven't I done this during the last release?
Indicate support for PyPy
Sprinkle 'pragma: nocover' where appropriate

Those two locations are executed under a replacement sys.set_trace()
installed by trace.py, which is why coverage.py can't see them.
Fix missing space in output of @profile(skip=...), add tests
Test profiling of recursive functions
Test @profile() error handling when supplied with incorrect args
Fix @profile(profiler='hotshot'), and add tests
Add setup.cfg for flake8
Don't rely on dict item ordering
Fix @coverage_with_hotshot output to match @coverage exactly

The "%d lines were not executed." was missing.

Add tests for hotshot-based decorators, to be enabled only if hotshot is
available (under Python 3 it's not).
Improve test coverage
@profile(profiler='hotshot'): don't keep open files unnecessarily

Fixes test failure on Windows, where you can't delete open files.
Reach 100% test coverage
Release 1.7.1
Post-release version bump
Post-release version bump (2/2)

Next time remind me to save the files in vim before running 'git commit -a'.
Add basic functionality to profilehooks.profile to allow it to work with classes

this is likely to be hacky