Make RTree node data extensible by users.

Refactor the templates for different types of node data to not depend
on the CutNode type in the class type (only for some methods called
directly by RTree methods). Use this to make RTree-based query
handlers take an additional template parameter specifying the per-node
data class to use, allowing the user to customize the type of data and
some implementation details of the RTree (e.g. selection of insertion
nodes). Also update the tests and proxsim binaries to provide this
setting. The CMake setting still remains, but is only used to
customize the tests and proxsim binaries.
Don't provide default types for query handler implementations.

Providing defaults is now somewhat error prone because the
SimulationTraits come first, which had a reasonable default value, but
now we also have an RTree per-node data type for many of them. To
maintain the default SimulationTraits we also have to specify a
default for the per-node data. Because of the transition (and even if
someone just forgets to specify the per-node data type), it's too easy
to end up accidentally using the wrong type (e.g. just bounding sphere
instead of bounding sphere with maximum object size) by omitting the
template parameter.
RebuildingQueryHandler doesn't need a NodeDataType parameter.

This got changed with the other query handlers, but like the
QueryHandler base classes and BruteForceQueryHandler, the parameter
doesn't make sense and is unnecessary for this class since it doesn't
necessarily have a child QueryHandler with NodeData. Since it
delegates creation of new QueryHandlers, it doesn't matter if a child
QueryHandler does need the template parameter.