Add more rules to determine which overloaded Java method should be invoked for a given Dart call. In particular, check whether the class of a Dart-wrapped Java object matches the type declared for the corresponding argument in the Java method.