Add option for custom cljs compiler env

* This adds a dynamic var `*compiler-env*` which can be bound to the
  atom containing the current compiler state for whichever cljs build or
  reload tool the user is using.

* cljs-supporting middleware ops will fall back to checking this var if
  no piggieback session is present.

* This gives no eval/load-file support when using these tools but allows
  their compiler state to be inspected by e.g. autocompletion and
  documentation lookup middleware ops.