Redesign Tabular (now Table) to fit the style sheet system

- Table holds the data (removed TabularData)
- Table is a hierarchy:
    Table > TableHead/TableBody > TableRow > TableCell
- TableCell is a StaticGroupedFlowables

Note: cell borders are not being drawn.
Add copyright/license note to the rst frontend sources
Style the table head cells
Draw table cell borders
More advanced table styling
Handle tables without a head section
Refactor Table.render (split up into functions)
Fix table cell vertical alignment
PDF: number fonts at the document level

- propagate fonts used on page to the top level (~ annotations)

This allows canvases to have no parent (VirtualContainer), if
image placement can adjusted similarly.
Delay adding image XObjects until appending canvas

Canvases can now be parentless (initially).
Allow easy initialization of a COS Dictionary
Suppress display of boxes around links
Split tables across containers (pages)

- introduce TableState
- VirtualContainer.place_at() now takes a target container
- pass Container instead of Canvas to Line/Polygon.render()
Refactor Table

- RenderedRow to store a rendered row and its height
- Table._render_section() to render head and body separately later
Repeat the table head rows for split tables
Make repeating of the table head optional
Optionally prevent splitting tables

`split_minimum_rows` specifies minimum number of (body) rows to
render in a single container when the table is split

Notes:
- bug fix in Container.advance() (needs further investigation)
- MaybeContainer: do place if state == None or if not state.initial
  (all flowables should probably start with an initial state
   instead of with a None-state)
Make `split_minimum_rows` also apply to # rows left
More advanced table styling

- each cell can have a background
- match cells by their row index
- the Every class enables zebra coloring
- fix Line/Polygon rendering
Enhance table row matching and add column matching