Currently `PassManager` defaults to being anchored on `builtin.module`.
Switching the default makes `PassManager` consistent with
`OpPassManager` and avoids the implicit dependency on `builtin.module`.
A utility `ModulePassManager` class is added, which can be used as a
drop-in replacement for `PassManager` where the `builtin.module` anchor
is desired.
Specifying the anchor op type isn't strictly necessary when using
explicit nesting (existing pipelines will continue to work), but I've
updated most call sites to specify the anchor anyways since it allows
for better error-checking during pipeline construction.