Generic interfaces with generic methods: Mono

Hi.

The patch below works around an issue in Mono 2.10.8 and Mono 3.0.6 (possibly others)

Before this patch, attempting to proxy an interface such as 
```csharp
public interface IFail<T> {
    IEnumerable<T> FailingMethod<T2>(T2 pred);
}
```
would fail with a "key was not present in the dictionary" exception.

This is due to Mono misrepresenting `T` as a generic parameter to `FailingMethod<T2>(...)`.
The patch should not affect .Net systems.

All tests green on .Net 4.0 as far as I can see.


Thanks.