[WIP] grits indexed store

Here's a simple change that enables actual grits queries, instead of using the website as an intermediary like we do now.  The main benefit is that this allows for distributing eggs with per-user permissions, which Corran and Jason have told me will soon be important for ION.

This will result in a bit of a performance regression compared to downloading a static index file.  I've gotten the full index query down to ~1s of server time, though, so it shouldn't be more than that once I enable gzip compression and etag support on the server.

In this PR, the new store downloads the entire index from grits.  It can be optimized by doing smaller grits queries for just what it needs, but this was the easiest way to transition since some code assumes a full locally available index.

It adds dependencies on requests, grits_client, and encore.  Corran said enstaller is meant to have no dependencies, but we might loosen that requirement.  what do you think?