GeoStore

**DO NOT MERGE**

I made this to having discussion around GeoStore and track my progress working on it. There are several things I still need to do.

* [ ] Write more tests for GeoStore and RTree.
* [ ] Figure out how to package stores. Should they be part of GeoStore or separate packages?
* [ ] I think there is a bug with `RTree.remove` probably related to the recent refactor.
* [ ] Write doc for `GeoStore`.
* [ ] Write some samples for `GeoStore`. Including doc for creating your own stores.
* [ ] Make sure all old samples work.