new hook error handling scheme

hooks, in addition to returning futures that can delay execution of a
request, can now signal errors on their futures. an error signaled on a
hook future will completely halt the current request, reset any HTTP
parsing on the current connection, and/or clear out any of the
connection's associated data.

if an error is detected in the hook futures, this all happens WITHOUT
sending a response back to the client. if you want to send a response
back, do so BEFORE signaling the error.

this has been implemented for all calls to run-hooks, via the
do-run-hooks macro (originally a simple wait-for)
bugfix for new hook error scheme in util (has to :use cl-async-future) and also implementing a place where i missed a do-run-hooks wrap in listener