Changed handling of optional parameters:
* Parameter with null default value allows null values (existing behavior)
* Parameter with non-null default value adds argument null check
Added "MethodWithOptionalParameterWithNonNullDefaultValueButAllowNullAttribute" test case