mrhyde: Abstracted patching js return values into cljs

There is now a dedicated function patch-fn1-return-value
which will wrap an existing js function so that the return
value has js->cljs applied. This is currently being tested
with d3.mouse, with a slight wrinkle. Because d3.mouse is
also used internally by d3, and it sometimes (in the brush
code) loppily mutates the return value, this can't be done
all the time. So for now there is a strokes call
(patch-mouse) to enable this behavior.
mrhyde: abstracted patching js method arg keywords into functions

Now a new function in mrhyde patch-args-keyword-to-fn2 which
scans all arguments to the provided javascript method and
replaces any keywords with a function that pulls the key
from a map. [ ie: replaces :foo with #(foo %) ] This is currently
being installed on the d3.selection.prototype.attr call
with great success.

Also cleaned up the ever shrinking strokes/core.cljs file.