Replaced PDDictionary with hash map implementation. Performance is slightly bad for sparse dictionaries (0.018 s slower per 1 million ops) but exponentially better as size grows.