DataModelInterface

added DataModelInterface interface
made AbstractDataModel handle parcelling automagically
table builder/upgrader checks columns before adding constraints
lots more tests

(fyi: first 1/2 of this pull is all readme and tests stuff, interesting stuff is roughly 2/3 down page)