Fix to special case Dispose method to be treated as non-action

#1294
@rynowak @yishaigalatzer 
When the logic gets complex, its better IMHO to make it into a classic if else, so it's more readable and debuggable. A better approach is probably to get the GetBaseDefinition once, and then see if it's defined by the IDisposable interface. This way you can just get the base type once. 

Another minor side effect to this pattern is that if a user defines a Dispose method with parameters which is not the IDisposable method, it will still be removed. This is not intentional I believe.