Added Expressions\Expression::getExpresssionTypeName() and tests
Disallow $this from variable table in Expressions\EvaluationContext
Implement Expressions\IEvaluator::evaluateWithNewThis to allow evaluation with an new $this variable
Add comment explaining why HHVM does not support Iterators\Generators\GeneratorScheme
Update structured query representations
 - New update methods to update the immutable objects
 - RequestQuery/OperationQuery build their ParameterRegistry from all contained parameter ids in the structure rather than in the Builders (expression parsing)
 - Misc. method name updates
 - Extracted QueryComparator class to determine whether queries are equal besides parameter ids for testing purposes
Add Expressions\ExpressionWalker::doWalkAll method to allow overriding an array of expressions
Update Queries\Functions\Parameters\ParameterBase::getUnusedParameterDefaultMap docblock
Restructure Queries\Functions\FunctionBase with child class FunctionEvaluationContextFactory to allow storage of a lightweight class to recreate the function's evaluation context
Restructure DSL query provider
 - Remove query *Compiler classes and interface in favour of the more general query *Processor classes and interfaces
 - IQueryCompilerConfiguration is now completely responsible for constructing compiled queries
 - Implemented query expression processors for processing all expression trees with a structured query object
 - On top of that, implemented first class structural expression processors, to locate and inline expression which could affect the compilation output of a template.
 - Renamed Compilation\ParameterCollection to ExpressionCollection and implemented a range of variants for immutability and expression resolution with resolved parameters.
 - Also implemented Compilation\StructuralExpressionCollection and variants for structuring the located structural expressions within a query template.