Add core.proxy

Add the proxy class + tests.  Move tests outside source folder.