tests passing, time to refactor
refactor to remove Node class
refactor, creating a single method to insert_or_create a leaf
refactor the #each method
remove unnecessary sort on #all_data, after adjusting the array order
remove the metaprogramming of #insert_or_create, instead replace with #add_right and #add_left, using ternary ops for single line methods
add a &block param to the #each method to require a block
remove the call to .flatten on the array in #all_data, to make things less expensive
updated tests and such