Add more information to diffs

This PR adds information for when an update in history is a `delete`.
It also does a bit of refactoring on the methods so that we are more explicit about it and not passing in strings from random places.

@stephanfowler 

Diff updates in history now look like this:
```
{
  ...
  "diff" : {
    "action" : "update",
    "update" : {
      "id" : "au/culture/regular-stories",
      "item" : "world/2014/mar/11/syria-war-international-effort-southern-front-assad",
      "position" : "world/2014/mar/11/syria-war-international-effort-southern-front-assad",
      "itemMeta" : {
        "updatedAt" : "1394539029:f90,1396447876,1396449584:0C0,1396451572,1396452701:0C0",
        "headline" : "New Stuff"
      },
      "live" : false,
      "draft" : true
    }
  }
```
```
{
 ...
  "diff" : {
    "action" : "delete",
    "update" : {
      "id" : "au/culture/regular-stories",
      "item" : "business/2014/apr/02/centrica-chief-executive-share-bonus-scheme-2m",
      "live" : false,
      "draft" : true
    }
  }
}
```