Expose the hash as part of the api

This would allow a consumer of this api to attempt to specify the hash. If there is already an entry with that hash (but the urls do not match), it will fail and reject the promise.

```
generate({
    url: URL,
    hash: HASH
}) -> no problem
generate({
   url: URL,
   hash: HASH
}) -> still no problem because it matches the existing entry
generate({
    url: URL2,
    hash: HASH
}) -> failed with a duplicate entry mongoose error
```