Added Window to dictionary text/thrift formats
Merge pull request #229 from ambiata/topic/virtual-window

Added Window to dictionary text/thrift formats
Improve dictionary definition.

This change makes a number of improvements:
  - Definitions are no longer indexed in only one way, we
    have the core data and then a number of indexes for
    different situations.
  - Lots more tests over dictionary structure.
  - FeatureId becames a first class citizen in Definition
    this is importantant because a definition didn't make
    sense to pass around on its own before.
  - Sped up dictionary arbitrary (there was an exponential
    explosion in cases, so I have capped the number of base
    features).

Fixes #226.
Fixes #228.
Grammar in Arbitraries
Introduce Dictionary.empty
Remove dead code in renameDictionary
Remove DictionaryTextStorageV2 sanity check test
Correct ordering of dictionary text v2 storage and broken spec
Fix DictionaryThriftStorageSpec due to internal Map in thrift format