Removed Backend class, and now backends are simply constructed objects passed in.
Refactored how saving works, and implemented. All tests adjusted and added.
Models now can take a backend when instantiated; but no longer take one when saving. Saving tried the backend the instance was created with, otherwise uses the backend of the namespace. Also, renamed variables with an underscore to use $ instead.