Add a CLI `iree-ir-tool` with a command to strip data. (#14636)

Been meaning to do this for a while in order to have a place to stash
more power-user style things that core developers typically use iree-opt
for.

This one adds a `strip-data` sub-command which uses the passes from
#14627 to systematically replace tensor constants with synthetic values.
With an ASAN/asserts build, this was able to strip a 7GiB int4 vicuna
MLIR file in ~5s and a 23GiB h2ogpt model in about 30s (the latter has
some other characteristics which make it more expensive to load as well
as being bigger). Results were a 2.6MiB and 1.4MiB MLIR file
respectively, consisting just of program IR and annotations for
synthetic data.

Getting the opt pipeline right for arbitrary input is a bit tricky, so I
decided we should just armor this into a tool

From installed packages, this can be used as:

```
iree-ir-tool strip-data input.mlir -o output.mlir
```

From a build tree with Python setup:

```
python -m iree.compiler.tools.ir_tool strip-data input.mlir -o output.mlir
```

Required adding some additional compiler APIs:

* `ireeCompilerInvocationRunPassPipeline` to run an arbitrary textual
pass pipeline on an invocation.
* `ireeCompilerInvocationOutputIRBytecode` to emit bytecode from an
invocation.
diff --git a/compiler/setup.py b/compiler/setup.py
index 37a3aa1..ea1859f 100644
--- a/compiler/setup.py
+++ b/compiler/setup.py
@@ -455,6 +455,7 @@
             # TODO: We have renamed to iree-compile on 2022-03-18. Remove
             # this alias once no longer needed.
             "ireec = iree.compiler.tools.scripts.ireec.__main__:main",
+            "iree-ir-tool = iree.compiler.tools.ir_tool.__main__:_cli_main",
         ],
     },
     install_requires=[