Allow decltypes in nested lambda returns referring to captures

We want the following code to compile:

  auto L = [](auto n2) [=](auto a) -> decltype(n2) a + n2;
  auto M = L(5);
  auto N = M(3.14);

If n2 is not captured, but used within decltype - then we cause an assertion error - I'll work on that scenario next.