Tests and fix for #211
Move user.clj to dev profile, move init code from project.clj back to user.clj
Move app-template user.clj back to dev folder

dev/user.clj now contains the shim-code from the generated project.clj,
making the project file closer to pure data (welcome being the exception.)
fix run-dev: default interceptors are added only if none are defined
add tests for dev.init
remove a unused import
Interrogate HttpServletRequest instead of context
Re-orient servlet asyncrony to trigger when enter returns nil.

This is an intermediate step towards fully removing pause and
with-pause.

Previously, asynchronous servlet behavior was triggered by the
pause-stylobate function being called from with-pause. Now, instead,
we set a servlet as asynchronous when a nil return value is
encountered on an enter function. This is accomplished by adding a
start-servlet-async function to the :async-enter function (in
enter-stylobate). When a nil context is encountered all functions in
the :async-enter vector are executed and our servlet is set to
asynchronous.
Returning a channel is now the method for serving async requests

Where we we would previously use with-pause and futures for serving async
requests, we now use core.async channels. When an enter function returns
a channel, the interceptor plumbing kicks off its own go-block to pull
from that channel. Once a new context is pulled from that channel
interceptor-chain execution is resumed and a response is returned.
Fixes test-servlet-request
Wire up channel body
Convert sse code to use channel body instead of direct access to output stream
Make sse work with channel
SSE now uses core.async instead of with-pause
Wrap sse send-event calls in go block
Updating sse_test to reflect new async model
Add explicit dev fn to user.clj
Add test for channel use in interceptors.
Merge app changes
get JavaScript tests working