Fixing what I think is a bug in the InsertCommand where we could end up `zip()`ing two lists of differing lengths and end up with entities having the wrong keys.
WIP.  Reworking model inheritance stuff to use datastore ancestors instead of polymodels.  Not sure if the ancestor stuff is actually necessary.
Merge branch 'adam_support_model_inheritance'