More flexible brace placement rules for lambdas.

Previously, we required closing braces for lambdas to start
on the same line as the lambda definition ([) although this
only worked if the capture section and the function parameters
fell on the same line.

Now we allow these to fall on different lines and for the closing
brace to fall either on the line where the lambda definition capture
part starts or on the same line as the first token that appears
on the line where the lambda definition capture part starts.

For example, all of the following are now valid.

auto const lambda = [this, &](size_t i) {
    member_function (i);
};

function_taking_lambda_as_arg ([&](size_t i) {
    return i;
});

auto const lambda_with_long_capture_and_arg_list = [&variable_one,
                                                    &variable_two](int one,
                                                                   int two) {
    body_delegate_function (one, two);
};