Let endpoints attach to any servlet, and expose :handshake [IMMUTANT-456]

This changes the API a bit (create-servlet -> attach-endpoint), but I
think that's ok, and it facilitates better integration between Ring
handlers (deployed as servlets) and websockets.