Minor cleanup.
Renamed treeindex package to tree. Added sorted array index.
Added 1/n spatial join interface:
SpatialJoin.iterator(SpatialObject, SpatialIndex).
Correctness and performance testing for one/many spatial joins.
Have git ignore more stuff.
Modified PointsInBox example to use new one/many spatial join API.
Fix for issue #1. Related: now testing that the spaces associated with
the indexes provided to a spatial join are consistent with one another.
Check arguments to Box constructor.
Getting tests to work again, now that Boxes can't have 0 width or
height.
Got rid of Record's eof state. Cursor now returns null when it runs
out of stuff. Simpler to use, and a good starting point for making
Record an interface.
Record is now an interface. RecordImpl (which implements Record) is
temporary. Eventually, Index sublcasses will define their own
implementations.
Added Cursor.deleteCurrent(), and modified SpatialIndex.remove() to use it.
Moved some classes to different packages.
Minor cleanup.
To support integration with key/value stores, Record has been changed
from a class to an interface, and the API now deals more with Records
and less with SpatialObjects. Related to this, SpatialObject.id is
gone. The application's Record implementation can now implement
identity in any way it sees fit. The whole idea of SO.id was kind of
broken, and led to issue #2, which is now fixed. Version has been
bumped to 2.0.0 because this is such a big change.

Details:

- SpatialIndex.remove is quite different. The caller now provides a
  SpatialObject to look for, and a RecordFilter, to identify exactly
  which records to delete. (This replaces a mechanism based on SO.id.)

- Pair is now a pair of Records, not SpatialObjects.

- SpatialObjectKey is gone. Instead, Record provides key methods,
  keyCompare and keyHash. I.e., Records contain keys.

- KeyTemplateIndex is an Index implementation that allows for the
  partial specification of a key, omitting just the z-value. This is
  useful in case of a hybrid index, e.g. an index keyed by (a, b,
  polygon). In a query for a = 1 AND b = 2 AND overlap(polygon, ...),
  the restrictions on a and b would be carried by a KeyTemplateIndex
  which wraps an Index.
Starting to make Index and related classes generic: Index<RECORD extends Record>
Genericized Pair, SpatialIndex, and some methods of SpatialJoin.
More work on generics.
SpatialJoinFilter now operates on SpatialObjects instead of Records.
Minor cleanup.