mrhyde: more experiments with closure advanced compilation

Like a scab I can't stop picking, I tried a few other
approaches before giving up again. I initially though I
might be able to search the parent object for the function,
and this worked outside of advanced mode. I also tried
a few new flavors of constructor interception.

I also noticed that *all* function patching calls are
failing with advanced compilation. So either there is a
systematic issue here, or maybe these techniques are just
not compatible with the google closure idea of advanced
compilation.

Hopefully I am now giving up on this. Even if I patched my
mrhyde and strokes code, coming up with a sensible d3 exports
file would be a challenge. I was just lured into trying again
because I had seen how fast some of my code was after
optimizations.
mrhyde: most tests now passing in advanced comp mode

All tests except for map patching are now passing. I relaized
that I needed to make a dummylib externs file for the compiler.

Also made a new benchmark. Everything is as it was, or maybe
a bit better there.
mrhyde/strokes: added exports. experimental typepatcher.

Wasted a few hours becasue google chrome is optimizing
away javascript semantics. Strong claim I know.

The machinery is in typepatcher to install a
hook on PersistentHashMap. This should hook into the
constructor, which looks like this in the compiled js:

  cljs.core.PersistentHashMap = function(meta, cnt, root, has_nil_QMARK_, nil_val, __hash) {
    this.meta = meta;
    this.cnt = cnt;
    this.root = root;
    this.has_nil_QMARK_ = has_nil_QMARK_;
    this.nil_val = nil_val;
    this.__hash = __hash;
    this.cljs$lang$protocol_mask$partition1$ = 4;
    this.cljs$lang$protocol_mask$partition0$ = 16123663
  };

But it doesn't work. Unless i put a console.log in the code above.
Or just a console. or just "3;". Its nuts. On safari and firefox
I get the desired behavior, but chrome seems to optimize
any funciton that consists of purely this.foo = bar, ignoring
setters in the prototype chain.

So maybe now I really give up. Shucks, it was a pretty good
idea too.