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.

Closes #14