version: rolling to 0.0.2-SNAPSHOT
d3: upgraded to 3.0.4 from d3 repo

Also renamed to simpler name as found in d3 repo.
mrhyde: do not clobber the few important cljs map keys

One of the most important keys is "keys". With this check
not in place (conj {:keys "foo"} {:what "not"}) would spin
out of control in a tizzy. With great power...
added test framework

Finally, a test framework. This one - for now - stolen from
domina. Thanks Luke!

I adapted the domina test suite to be able to easily run
tests from different libraries (strokes, mrhyde, etc).
For now, this addes domina as a dependency.

I have my own ideas for replacing this in the future with
a test suite that uses strokes for layout instead and shows
test dependencies in an interesting way with a bubble layout,
but that can certainly wait for another day. Like when mutable
mrhyde data structures work.
mrhyde: added test suite of existing functionality

Decent coverage of existing techniques being tested on
a dummy js library.
mrhyde: now implements mutable js-cache on seq types

sequential types in clojurescript are now patched with
more sophisticaed machinery to deal with attempted mutations.
The setter will lazily instantiate a transient to refelect the
accumulated changes attempted on this object. The getter will
return either the value from this 'dirty cache' or the original
persistent value.

In addition, a protocol was defined so that cljs types can
respond to queries:

 hyde? - is this persistent collection actually a 'hyde' type
 has-cache? - has there been attempted mutations from the js world
 from-cache - render a copy of this collection with js mutations

This protocol was added to the same set of known sequential types.

Also a unit test was added to mrhyde unit tests to verify the
desired result upon mutation attempts. There is obviously much
more work to do to support all varieties of mutation, but this
takes care of the most straightforward setter case.

Also cleaned up some mrhyde code introducing if-not.
cleanup: fixed warnings, removed :use, removed strokes.patch-mouse

Squelched warnings on defprotocol with declare statements.

Removed :use everywhere and now use :require/:refer consistently
everywhere.

Confirmed patch-mouse is safe with quadtree brush and promoted to
part of the default strokes patches, so method no longer exists
externally.
new strokes example: circle packing

Initial working version of circle packing, using ugly
aget mechanics. Committing this ugly working version as
a reference.

Also added PersistentHashMap (the result of js->clj) to the
mrhyde mappish types. And now filter patching map only on
keyword keys - seems fine for now.

Lastly pre-emptive patch of d3.layout.pack.value to accept
a keyword 1st argument.
strokes: circle-pack using clj data structures and keyword access

There is a lot of data being written 'to the cache' on the
objects, and that is still being accessed with aget. But the
persistent subset is now being fetched via keyword access,
including a keyword function being passed directly to
d3.layout.pack.value.

Also added hyde protocol to mappish types, but the real
meat of the implementation is still missing. Once that
is done, there will need to be a new patch function which
does a deep "from-map" pass on certain functions.