Feature/redo revisions system

Note: This is not ready to be pulled in to the main product.

After spending all day fighting with the old revision system i gave in and started the process of rewriting it.

I thought it was best to make a pull request now just to ensure its visibility.

Key changes:
* Data adding migrations have been removed (since these were tied to data models that no longer exist)
* Revisionable has been rewritten and is much simpler now. (still needs a lot of cleaning up)
* Method names changed to match rest of project style make_revision_live
* Reverting now actually reverts (previously it just claimed to have done so)
* programmes and other ui elements are in the process of being changed to us the new features

I've got it back to the point where most the tests pass (Not 100% sure why the controller test is now failing) but will still need looking in to. I'll hopefully be able to improve the test coverage as well as get the new UI style working while i'm here.