Seprate registeration and CLI parsing from `MlirOptMain` to `mlir::registrationAndParseCLIOptions` and a new `MlirOptMain` so that external tools to drive `mlir-opt` can call these two new APIs to get CLI option values before running `MlirOptMain`.
Seprate registeration and CLI parsing from `MlirOptMain` to `mlir::registrationAndParseCLIOptions` and a new `MlirOptMain` so that external tools to drive `mlir-opt` can call these two new APIs to get CLI option values before running `MlirOptMain`.