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 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)
release 2013.10.18.1
Add metavar to --cache-dir
Document %(format)s (#1612)
Add new option --abort-on-error
[bash-completion] Do not use dash in function name (Fixes #1623)
release 2013.10.18.2