Python 3.1 compat

3.1’s range() objects do not support slicing.
Add pixel tests for gradients.
Changelog and docs for v0.19
Docs: Recommend `virtualenv --system-site-packages`
Fix unnecessary line break in floats.
Have `position: fixed` elements repeated on every page.
Use stroke rather than fill for solid borders. Looks better on PDF.
Remove unnecessary page breaks before tables.
Fix max-content with forced line breaks and whitespace at start of line.
Refactor min-content, avoid dubious line breaks.

Layout still can break at any tag, but not min-content.
Allow line breaks before/after atomic inline elements

… in preferred minumum width calculation.

Revert test workarounds made in the previous commit.
Fix painting of inset/outset borders.
Fix margin collapsing with tables.

The position of page breaks between table rows did not consider margin
collapsing.
Fix trailing whitespaces in preferred widths