Add support for user-specified pre-optimize steps for Optimizer example use case: run validation on initial state before doing optimization to help identify edge cases