Clarify __successor naming
Added each_key/each_value
Added flatten
Some more idiomatic ruby
Move aliases on the bottom of the class definition
Added some other aliases to comply with ruby's default Hash interface
Implement value? for bst dict
Implemented to_s for BST dict
Implemented dict invert()