Removed numpy function overloading in favor of an explicit numpy wrapper.

After we introduced indexing, numpy ufuncs started iterating over numpyNode objects
rather than calling their `sin` method. Although everything was still
correct (amazingly!) it was very slow, since it instantiated a Node instance for
every element in an array.