SubClass, Lists & multiple inserts

Insert now just adds object to an internal list, and now Commit must be
called to persist additions.
Added handling for sub classes (e.g. public virtual MyClass MyClass
{get;set;} and collections.
Non primitive and strings (e.g. collections and classes) are serialized
into JSON for storage and mapped back when retrieving.