BUG: Looks up the lazy_function name from the caller's namespace in case
it is not used as a decorator.
DOC: Fixes a typo in a comment.
ENH: Uses a metaclass to define some of the magics automagically. Uses
safer namespacing for the internal attributes of Thunk.