Bugfix in bounds inference

The bounds required of a stage only depend on inner productions,
and the innermost stage we're currently producing.

Produce A {
  Produce B {
    // Bounds required of D here depend on bounds of its possible users:
    // C and B. It doesn't matter that A uses a different instantiation
    // of D below.

    Produce D {
      D =
    } consume D {
      Produce C {
        C =
      } consume C {
        B =
      }
    }

  } consume B {

    Produce D { // Second realization of D
      D =
    } consume D {
      A =
    }
  }
}

Previously it was innermost productions, and all things we're currently
producing, which would have included A in the first step.