Allow lambdas with undeduced return types to error out gracefully

Prior to this patch, the following would cause an assertion failure
auto L = [](auto f, auto n) f(f,n);
L(L,5);

Now it errors out slightly more gracefully. The error message does need to be improved.

Implementation Notes:
Prior to Generating code, we log an error prior to ActOnFunctionDefinition