Add some more tests - and clang-format a section of code.

- not all the tests pass at this point
Support 'this' capturing in generic lambdas used in auto nsdmi's

If this is a lambda and we capture 'this' make sure we establish
a CXXThisOverride for any generic lambdas used in auto nsdmi's.
 i.e we want the following to work:
  struct X {
      int mi = 5;
      auto GL = [this](auto a) {
          return this->mi;
       };
    };
    X{}.GL(3.1);

Implementation notes:
  - in InstantiateFunctionDefinition, if what we are instantiating is a lambda call operator and the current scope info captures this, then create a CXXThisOverride if the containing decl-context is a class and not a member function.
Check getCurLambda() only if Function is a lambda callop.

Add a check in InstantiateFunctionDefinition to check that
the function being specialized is truly a lambda call operator.

I wonder if getCurLambda() can return true for some outer scope lambda if the function being specialized is not a lambda?? sounds very unlikely.
Eitherway - better to be safe! perhaps this would better be an assert.