Implement format selection in YoutubeDL

Now the IEs can set a formats field in the info_dict, with the formats ordered from worst to best quality. It's a list of dicts with the following fields:
* Mandatory: url and ext
* Optional: format and format_id

The format_id is used for choosing which formats have to be downloaded.

Now a video result is processed by the method process_video_result.
Implement the max quality option in YoutubeDL
Do not handle format selection for IEs that already handle it
Default 'format' field to {width}x{height}

If width is None, use {height}p and if height is None, '???'
Implement the prefer_free_formats in YoutubeDL
Fix the default values of format_id and format
Add an extractor for rutube.ru (closes #1136)

It downloads with a m3u8 manifest, requires ffmpeg.
[brightcove] Fix more broken XML (#1608)
Merge remote-tracking branch 'origin/master'
[brightcove] Raise error if playlist is empty (#1608)
[youtube] Do not crash if caption info is missing altogether (Fixes #1610)
release 2013.10.17
Add an extractor for techtalks.tv (closes #1606)
Merge remote-tracking branch 'jaimeMF/format_selection'
Fix test
Extend #980 with --max-quality support
fix typos
[tudou] Fix title regex (Fixes #1614)
release 2013.10.18
Check for embedded YouTube player (Fixes #1616)