plugins.ustreamtv: re-implement plugin
plugins.ustreamtv: re-implement plugin

- replace flvconcat with ffmpegmux
- add typed namedtuples for stream formats and stream segments
- implement WebsocketClient
  - simplify message handling and remove state polling
  - use validation schemas to parse messages
  - parse stream formats once
  - add subscribable thread-safe segment queues (deques)
- rewrite UStreamTVStream{,Reader,Worker,Writer}
- rename stream shortname from "uhs" to "ustreamtv"
- simplify segment waiting logic and immediately stop worker and writer
  threads when the stream gets closed
- find channel ID via XPath
- simplify stream initialization

streamlink/streamlink,chhe/streamlink,bastimeyer/streamlink,gravyboat/streamlink,gravyboat/streamlink,chhe/streamlink,streamlink/streamlink,bastimeyer/streamlink