Replace coordinator's naive slice of keys with an interval tree.

In many instances, txns were sending 3-4 identical resolve intents.
Seemed worthwhile to make this change.

Also, over the course of debugging, I noticed that we were keeping way
too many timestamp entries in the timestamp cache. This change also
includes code to keep that cache pruned on inserts so it should be
much more memory-efficient now.

Finally, I noticed a bug in the interval tree implementation from biogo.
This change works around it by pruning the timestamp cache, but this is
pretty serious and I've mailed the biogo user group and will get it
resolved one way or another.