Array adapter

This branch should not change functionality. It serves to remove the array-based persistence code out of Model and into a separate mixin. This facilitates the implementation of different persistence mechanisms.

My own Sqlite3 implementation has basic functionality done in another branch. Either way, this branch would be good to get in in case others want to being to build other adapters, i.e. Parse.