Added treaps, gave value types uniform toString() in preparation for use
with sets.

I'm planning on make sets a proxy around maps, that uses the value's
toString() to compute a value-unique index; equivalent values should
have equivalent toString().