Implement basic Revision class
Add the next step of revision logic

This is untested but the it is a
good place to start...
Add the ability to save a new revision

Again this is untested but reveals some flaws
that we should probably fix mainly around
caching of tokens requests...