feat(watchgroup): improve method invokation, support methods of primitive types

Previously, properties were determined to be methods using awkward introspection techniques, and
this caused problems for methods of primitive types. With this CL, method invokation no longer
depends on using `Object#getPropertyDescriptor()`, and is capable of calling methods of string,
number, boolean, and other types, in a much simpler fashion.