Run dispose in same context as main function
Improve 'method' functionality.

- Proto chain safe
- Memoized method is ready right after first access (previously it was bundled on first invokation which was problematic)
- memoize when used with method option returns object with name -> descriptor content, it should be used with Object.defineProperties on target object