text: Title: Add support for reason in WebSocket.close()
  Body: Support for closing with a `reason` was added in version 2.3 of the [HTTP & WebSocket ASGI Message Format](https://asgi.readthedocs.io/en/latest/specs/www.html#http-websocket-asgi-message-format) (2021-02-02).
  
  Also decide whether we want a way to derive the reason from `HTTPError`s like we do with the close `code`. Alternatives include just using the error's `title`, `description`, and adding a new reason parameter to avoid confusion.