Starting to refactor how proxies are managed. Step 1: thread proxies back through instance creation promise chain. The goal is to store proxies by name alongside instances so that we can correctly retrieve an existing proxy by name.  Minor cleanup of module loader.  It should not have had the responsibility of merging wire specs.  Moved that to context where it belongs.
Reduce number of proxies created by reusing them when possible. Use proxy.advise in wire/aop.  Simplify wire/aop since it doesn't have to track aspects now