Refactor ExpressionCompiler

- Remove AbstractFilterAndProject and AbstractScanFilterAndProject and move creation
  of operator factories outside of ExpressionCompiler
- Introduce PageProcessor and CursorProcessor and compile implementations
- Move cursor/page-specific compilers out of ExpressionCompiler and into PageProcessorCompiler/CursorProcessorCompiler
Add JMH benchmark for TPC-H query 1
Process partial pages if PageBuilder becomes full
Buffer bytecode output to avoid tearing
Use invokedynamic for generated toString method

This is to avoid constant pool issues due to large strings
Factor out duplicate defineClass implementations
Use convenience method for generating default constructor
Remove unused "compiler.new-bytecode-generator-enabled" config option
Add convenience methods to bytecode framework
Fix a bunch of warnings, and fix Logger to use the right class
Avoid generating dead bytecode
Improve aggregation framework

Input functions may now specify @NullablePosition on their input
parameters, if they need to accept null positions
Remove AggregationFunctionDefinition
Fix typo in stats computation
Fix intellij warnings
Support scalar functions with @Nullable arguments
Allow binding multiple event clients