The Table widget is used to create incremental partially-rendered tables. It provides sorting, focus and (possibly floating) table header support.

Behind the scenes it uses `Partial_render_list` so it works with very large tables (e.g 10,000 rows).

`module type S = S`
`module type Id = Id`
`module Focus_dir = Focus_dir`
`module Margin = Margin`
`module Scroll_region = Scroll_region`
`module Float_type = Float_type`
`module Make : functor (Row_id : Id) -> functor (Column_id : Id) -> functor (Sort_spec : Sort_spec) -> S with module Row_id = Row_id and module Column_id = Column_id and module Sort_spec = Sort_spec`