All IG code should use the interface of LocatedEntity when dealing
with any entity, rather than sometimes requiring Entity. Add virtual
functions to the interface where required, and modify all other interfaces
to stop them using Entity. This makes the code way cleaner, and much better
de-coupled.
* rulesets/BBoxProperty.cpp, rulesets/BBoxProperty.h: A new property
to make BBOX optional and more dynamic.
* rulesets/MultiHandlerProperty.cpp, rulesets/MultiHandlerProperty.h,
rulesets/MultiHandlerProperty_impl.h: A new property for those
generic properties that need many handlers.