Lots of changes. Auth and permissions handlers are done, as well as some improvements to the data handler.

The data handler no longer saves automatically - unfortunately, due to some limitations involving Python dictionaries, I couldn't get it to save data when a sub-dict was edited. However, it will now create a file and directory structure if one is not found.

Currently, you must manually call .save() on your data handler when you edit the data. Support is planned for using the data handler with a `with` block, however, so if you find that less messy than .save() then look out for that commit.

The permissions and authentication handlers are designed to work together. However, they are able to work independently of each other, and can be disabled separately in the event that you use an alternative permissions or authentication plugin. They will generate default files and create a super admin account with a random password if you don't have any users on first run.