rtree-based intersects

**Ready for feedback, not merging.**

Getting the intersection of the current view is now really, really fast. It seems to increase memory usage by about 10-20% (unscientific). The significant downside is that inserting everything is relatively slow, increasing the initial load time.

Is this an improvement? Worthwhile trade off?
@jfirebaugh @tmcw