level moves

datastore now has methods for retreiving models and their related data. it is more aligned with the purpose of serving the view controllers.
Updated the model interfaces to have an explicit load function, rather than piggybacking on the data function, and what was passed to it in order to determine whether more information needed to be loaded from the level instance or not.
Updated the models that are stored by integer keys. They now have a method to find the largest key being used, also the last key, and increment it by one for the new object. This function is tied into the save method, in an attemp to minimize the time taken to read the DB for entries, and writing a new entry at what is theoretically the end of the line.