Add support to invoking interfaces in MethodAccess

- Use INVOKEINTERFACE instead of INVOKEVIRTUAL in case of accessed interface types.

- Also, in the method invoke(Object, String, Object...), better suppor for overloaded methods by checking the number of expected arguments.