Adds `Context.register()` method to replace decorators.

Adds `Proxy()` class to improve proxy performance and encapsulation.
So the new equivalent would be to register a local function that uses `numpy.vectorize`?  Maybe we should still implement a `vectorize` on top of `register`.