Removed extra ?> (presumably from a bad merge)
Refactored difference action/view.
 - Slimmed-down controller action, now simply gets the data for
   the view.
 - View has had layout markup removed; now rendered within the
   'content' layout
 - Diff is now performed from within the view (as it is essentially
   markup generation for the visuals).
 - Updated styling to add strikethrough to deleted text.
Diffing working properly for all attributes.

 - Attributes are built in the controller, before
   being passed to the view.

 - Both programmatic and non-programmatic attributes are split
   into three variants: machine, field (ID stripped) and label.

 - Relational attributes are resolved prior to diffing (there
   may be a performance saving to be made by diffing unresolved
   values?)

 - Attributes which are not ignored and which have changed
   are added to attributes['resolved'] array. These are
   iterated over and displayed within the view.
Diffing is now limited to a subset of attributes

 - If attributes contain no spaces, they won't be diffed (we assume
   that they are too short, a year, a slug, or similar)

 - Attributes that are relational are not diffed (they have to be
   selected from pre-populated values)

 - We use the 'proposed' revision (rather than the 'live' attribute)
   to calculate diffing
Added functional approve/reject with modals

 o This adds post_approve_revision and post_reject_revision
   to the programmes controller. I have since noticed that
   similar methods already exist in Revisionable controller.
   HOWEVER, Revisionable uses GET to delete the data which
   is considered bad practice (the HTTP protocol specifies that
   GET should not be used for destructive actions!)
Standardised casing in inbox, diff and revision views
Added basic permissions to diff, approve and reject
Added edit button to diff view. Made buttons translateable.
Updated save_revision to unset 'under_review' as well as 'selected'
Merge pull request #292 from unikent/feature/workflow

feature/workflow into develop