- Split `streamlink_cli.utils.progress` into `progress` + `terminal`
- `terminal`:
Responsible for calculating character output widths and for writing
data to the output text stream
- `progress`:
Responsible for calculating the download speed and for formatting
the progress output
- Use a separate thread for the progress output, with the output being
written in constant time intervals, independent of the data that gets
fed by the stream iterator of the main thread
- Output format changes:
- Remove "prefix" from output format (full path already gets logged)
- Avoid showing download speeds until a time threshold is reached
- Use binary values for file size and download speed values
- Add leading zeros to time units (only ever grow output text size)
- Don't import from alias module in `streamlink_cli.main`
- Split, move and rewrite tests