Convert Boolean flag to IdHandling.

This is still not perfect. Tests pass, and we generally handle `_id`
better, but we still are a bit over-conservative and have some other
issues (tracked in new tickets).

However, this

* fixes the overzealous `UnwindOp`/`UnwindOp` merge,
* adds a dependency on Spire (for `IdHandlingRing`), and
* adds a bunch of tests for open issues.