Now a new FileDownloader is created when downloading a video

The progress hooks can be added using the method "add_downloader_progress_hook"
Move FileDownloader to its own module and create a new class for each download process

A suitable downloader can be found using the 'get_suitable_downloader' function.

Each subclass implements 'real_download', for downloading an info dict you call the 'download' method, which first checks if the video has already been downloaded
[YoutubeIE] Externalize format selection
[YoutubeIE] Add width and height to format dict
[YoutubeIE] Sort formats by resolution
Filter and sort videos before calling list_formats
Make prefer_free_formats sorting more robust
[vimeo] Better formatting for regexp
Show all matching URLs
[vimeo/generic] Add support for embedded SWF vimeo videos
Remove unused import
[youtube:user] Speed up --match-title
[blinkx] Support mobile URLs (Closes #2022)
[smotri] Make optional attributes optional
[smotri] Add support for moderated (?) videos (Fixes #2030)
release 2013.12.23
Use bidiv instead of fribidi if available (Fixes #1912)
release 2013.12.23.1
Remove debugging code

Introduced by accident in 5d681e960db98ec2d9f3d4361bd66f581506a772
[bliptv] Simplify (From #2000)