Moved the data writing method to accept DataInterface objects for values instead of an array. This allows for new objects to be saved with their ids added to the instance while still allowing updated instances to work as desired. Also moved Context plugins to get the default plugin constructor parameters in addition to the storage controller.