Add 'make smoketest-coverage'

This gives me 93% coverage.  The untested bits are mostly in error
handling.

This is probably enough to start on a Python 3 port, but I'd prefer the
test suite to be more integrated and more robust.

Note: you need reportlab from tip to run this because of
https://bitbucket.org/rptlab/reportlab/issue/51/transparent-png-causes-a-typeerror-cannot