Changed the way that VarArgs are determined

I noticed that using reflection for calling the isVarArgs method on java.lang.Method is pretty slow compared to a direct call. So Instead, I implemented a solution based on selection of a concrete subclass, depending whether the method is available or not. In my tests this lead to a 5% increase of method call speed.

This may be a bit controversial, because it needs Java 1.5+ to compile all sources. It does run under Java1.4 though, when compiling with -source and -target set to 1.4 (I checked). So, the maintainers should decide if this is a suitable solution or not.