refactor dict and rbtree

Update dict by taking out the hash table implementation and allowing it to be swapped out with either hash or rbtree.