Websocket handler context path can be specified with a :path option

This also fixes some unintended behavior of the options map: since we were specifying option defaults in another arity, specifying any options required you to specify all options. (E.g. passing {:send chan} would cause :recv to be nil.) This is now handled with :or style defaults.