plugins.stream: Improve parameter parsing.
stream.http: Verify arguments passed to Request().
stream.hls: Major refactoring.

- Rewrote the parser from scratch to be more solid and correct
  in accordance to the latest M3U8 spec.
- Now supports playlists using EXT-X-BYTERANGE.
- Now supports playlists using multiple EXT-X-KEY tags.
- Now accepts extra requests parameters to be used when doing
  HTTP requests.
cli: Only resolve synonyms once when using --player-continuous-http.

Previous behaviour was intended to handle a situation where a
stream suddenly renames (e.g. resolution switch) but this is
pretty uncommon and caused undesired stream switches on some
services where not all streams may be immediately available
after a stream restart.