instead of lossy hashing of wordpair features to integers, map them using VocabEncoder. the problem then is that each process has its own VocabEncoder, and they need to be synchronized. synchronizing them would be a waste of time, though. we really need one copy of VocabEncoder, maintained by the master, and read by all slaves. So, this commit constructs elements of the VocabEncoder as a managed shared memory object.