Try to make RCursor a bit more efficient and flexible

It now avoids unnecessary re-renderings, by comparing equality
with all its arguments, and by using a Reaction to filter out
only the changes that affects its value.

This also adds an optional setter callback, that is called instead
updating the parent atom directly.
Add Wrapper, a [value callback] combo that looks like an atom
Update cursor test
Add wrap and new cursor functionality to core.cljs
Add some docs and assert
Make sure returning new class from render works
Add equality test for cursor
Add test for wrap
Re-render components in mount order instead of tree depth

This should be more robust, and allows us to stop passing tree
levels along to every component.
Cleanup

Avoid compiler warnings, some commented code
Merge branch 'mountorder'
Make workaround for circular dependency less cumbersome
Reuse render function between components
Simplify mount-count
Generalize the experimental js importing
Merge branch 'morecursor'
Reorganize build, tests and doc site

Tests and doc site can now run without node, using only
"lein figwheel". Tests and site are then re-run automatically
whenever a source file changes.

The doc site is now generated into "outsite/public", and can be
copied into the "gh-pages" branch with "make build-gh-pages".

"make push-gh-pages" builds the doc site and pushes it upstream
to the gh-pages branch there.

Generation of html pages is now handled completely in
ClojureScript, loaded from "bin/gen-site.js".

Link handling is a bit simplified.
Fix site-generation and simplify title setting
Got site generation and tests working with advanced compilation
Make sure index.html is in git