refactor macros: lifting is out, hoisting is in

* Instead of lifting intermediate cells inside formulas, references
  to cells are hoisted out and the entire expression wrapped in an
  anon fn and that is lifted.
* Add defc and defc= macros.
* Use @cemerick cljs.test for testing.
* Attempt to fix console logging in phantom and headless ff.
* Rewrite cell= and defc= macros.
* Remove special handling of fn*.
* Avoid creating anonymous cell in set-cell!= because memory leaks.
* Unsupported specials are now down to just ns, def, deftype*, and
  defrecord.