Enable usage of custom optimizers in BlockBuilder

This might be useful for optiq to perform evaluations at compile time (i.e. `upper("y") -> "Y"`)