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?
```
  def valid_sha256?
    sha256 != recalculate_sha256
  end
```

This would change to:

```ruby
unless version.valid_sha256?
```