include SHA256 checksum in versions

While useful in general, checksums are an absolute _must_ for packaging gems in [NixOS](http://nixos.org/) (see my original issue at https://github.com/rubygems/rubygems.org/issues/712 for more details).

This PR:

* adds a `sha256` column to `versions`
* the hash is strict-base64 encoded ([RFC 4648](http://tools.ietf.org/html/rfc4648))
* the hash is returned in the api queries and is also stored in the index

I will write some tests shortly, but I'm opening this PR now to get feedback as soon as possible.

At a high level, does this seem like a reasonable approach?
suggestion:

1. change to nullable

```
add_column :versions, :sha256, :string, :null => true
```

In a future PR, after running `rake checksums:init`, change to not nullable:
```
change_column :versions, :sha256, :string, :null => false
```

But I'd run this by someone on the bundler core team first like @skottler.