Avoid duplicate releases

This adds a version manifest matching commits to versions and checks that before doing the release.

The manifest also includes a `current` object which is the current release for convenience.

For example:

```json
{
  "current": {
    "version": "20141103.0",
    "commit": "51075aa45801a395d34a631c6d61c588"
  },
  "versions": [
    {
      "version": "20141103.0",
      "commit": "51075aa45801a395d34a631c6d61c588"
    },
    {
      "version": "20141102.0",
      "commit": "3eec6a22e2add1f5ea41c0555cfdd90e"
    },
    {
      "version": "20141101.0",
      "commit": "185e0f6b95fff32cad965c932e1b90ec"
    }
  ]
}
```