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?
Rake tasks are tricky to test.
Does it make sense to move this into `Version`?

```ruby
  def recalculate_sha256!
    update_attributes(:sha256 => recalculate_sha256)
  end
```

Then you would have a simpler task.
Also, I'm assuming there will be quite a few version records returned, may want to use `find_each` which uses `each_in_batches`.

```ruby
versions.find_each(&:recalculate_sha256!)
```