Data model implementation for tables

Introduces dm.TableMatrix, a companion for dm.TableNode that provides a
non-sparse representation of tables with spanning cells.

Also introduces dm.TableSelection for representing table selections.

Change-Id: Ib4afcbaf157fb64666f52c9650f3260bb42f2a3c
Merge "Data model implementation for tables"