adding route jumping

there's a new function, (next-route), which jumps out of the current
route, adds it to the excluded routes list, and attemps to find the next
matching route (based on method/resource).

also changed is that instead of routes upserting by ddefault, they are
now just blindly added to the end of the route table (unless `:replace
t` is specified in the route's args:

(defroute (:get "/" :replace t) (req res)
  ...)

example of route jumping:

(defroute (:get "/onions") (req res)
  (unless (getf (request-headers req) :test)
    (next-route))
  (send-response res :body "You sent the correct headers."))

(defroute (:get "/onions") (req res)
  (send-response res :body "You didn't send the Test header. I'm not mad, I'm just disappointed..."))
add smart close to send-response/finish-response

unless specified, the request headers are now read in send-response and
finish-response to determine whether or not the connection should close.
this makes it so the app doesn't need to worry about it, and presistent
(or one-off) connections are handled/abstracted completely by wookie.

also, finish-response now takes the response object *instead of* the
chunked-stream object.
only report socket EOF if the response attached isnt marked as finished (otherwise nobody cares)
new wookie version =]