Revision diff UI

Revisioned meta fields should show in the revision diff UI.

**Changes**
* Filter the fields that show in the UI - [note requires updated patch that makes this possible](https://core.trac.wordpress.org/attachment/ticket/20564/30033.diff)
* Use singleton pattern for plugin as need to store the registered revisioned meta fields.
* Change the way revisioned meta fields are added. This is because extra args are now required - key, label and display callback (to format the raw metadata for display in the UI)
* If no display callback is provided it will simply do a recursive implode using a line break to ensure the diff tool is passed a string and is still functional