Shuffle files around, use TableGen to register passes, and introduce a `mlir-hlo-opt.cpp` file to hold the main entry point of the -opt tool and stop relying on static registration for dialect/passes. PiperOrigin-RevId: 323674455