move back to a memory-efficient representation of RBTs
make color its own type again, rather than boolean