* Changed TQuery to enforce that it is a singleton object: it can now only be created once.
* TQuery now instantiates itself by means of Instance property: Query function now calls TQuery.Instance rather than constructing object itself.
* Assert statements changed to use ClassName method to get class name for error messages.