Stage 1 of rewrite:

Moving to two tier proxying:
- Direct passthrough, to trap call() without requiring a function
  to allow array proxying without un-configurable function length.
- Trapped proxy, simpler, but similar to ES6 proxies.