#44 Convert Dictionary to Thrift and remove name

This is _not_ finished, but opening up to get some early feedback (if people are bored).

@markhibberd This hasn't changed all that much from my branch, but tried to break everything down just for my own sanity (and possibly yours).

The last commit is really my 'sin bin' of things that aren't quite finished yet. In my head the last big thing that _has_ to be done is more graceful migration of previous dictionaries. I'll most likely stick that in `DictionaryImporter`.

Any suggestions for what locking we _need_ in `IdentifierStorage` for this PR? It might be we're not (that) worried about contention of dictionaries being imported at this stage.

/cc @raronson 
> just a little nit pick, can you please put the return type on function definitions?

Sorry I didn't do it here. The only reason I _didn't_ in this case was that the `IvoryLoader` and `IvoryStorer` traits had them just above.

> so we should make that a standard part of review.

I'm all for having builds that fail hard on broken styling, but that might be too heavy handed.