Environment for temporary identifiers used in instructions. Lazy implementation: only created when actually used.

`type t`````
`val create : InferIR.Procdesc.t ‑> t`
`val expand_expr : t ‑> InferIR.Exp.t ‑> InferIR.Exp.t`
`val exp_is_temp : t ‑> InferIR.Exp.t ‑> bool`
`val expand_expr_temps : t ‑> InferIR.Procdesc.Node.t ‑> InferIR.Exp.t ‑> InferIR.Exp.t`

Stronger version of expand_expr which also expands a temporary variable.