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