Add comparable keys and value requirements

Make keys implement Comparable (and get rid of hashCode) and make Tree to only accept TreeElement
Change getIterableList

Make getIterableList use existing list