GRECLIPSE-1696 Fix and tests for type inference of generic method return type

Actually StaticTypeCheckingVisitor is not used as visitor. Only its inferencing mechanism is reused. Unfortunately, inferReturnTypeGenerics method is not public and static (as inferLoopElementType method, for instance). 
So it is reused by subclassing. Actually the class is instantiated with some values as its constructor requires some of parameters should not be null.
But it looks like those values are not actually used during type inference.