Extract base classes for Type
Add checkType that takes an error code
TableScanOperator should be blocked until split is added

Also, TableScanOperator needs to delegate isBlocked behaviour to its data source
to gurantee the same call procedure with ScanFilterAndProjectOperator
WindowFunction optimizer