fix(server): ambiguity in fail method overloads
I have encountered an issue while dealing with multiple failure types in the same endpoint. It seems that the overloads for the fail method in TypedResponseScope.kt were conflicting because of the out variance of the failure type parameter defined in FailureSpec.ByCode. This resulted in the first overload (fail1) to be always called. This was especially noticeable in the routeWithRaise overloads in ServerRaise.kt where each fail call would resolve to the first overload, when other overloads were expected to be called depending on the number of failures declared in the endpoint.
None of the unit tests covered this case, so I add 2 new tests to verify that the correct error is expected.
This also required loosening the required type parameters to call the other fail overloads (replaced Nothing with *).