Add custom query data support.

Add support for custom query data passed into queries and utilized by
query handlers. For the built-in classes, this adds no real cost, but
other implementations can now use their own subclasses of Query which
receive notifications of custom query data strings. Query handlers
must know how to extract this information, but that is usually simple
since they allocate the custom query classes.

Other than the basic changes to Query and QueryHandler classes, this
just adds the hooks to pass this information and updates about it
through the system, in QueryChangeListener, the RTree implementatio,
and AggregateListener. Support already existed in
LocationServiceCache. Finally, it updates the test and proxsim code
to handle these new interfaces.
Proactively recompute bounds after inserting new node.
Fix updateObj implementations to handle updating internal nodes.

Some of the updateObj implementations were not complete. They only
handled leaf objects, but for replicated trees they should also update
internal nodes.