Performance Improvements

Changed vocabulary collection to be distributed, eliminating single-reducer bottleneck.

Changed feature keys to be stored as integer ids via the vocabulary now – should save additional space on large grammars and when extracting many features.