Implement format selection in YoutubeDL

Prepare YoutubeDL to handle the format selection, the info extractor can set the formats field of the info_dict, which contains the formats as a list of dictionaries ordered from worst to best quality.
The videos can be selected as with YoutubeIE, the format code is the `format_id` value of the format dictionary (which is by default the index in the list).

Currently implemented for TED and ArteTV

Some things that are currently not implemented:
* [x] Prefer free formats
* [x] Max quality format

Some feedback I would like to recieve:
* Is it OK to order from worst to best quality, or do you prefer the reverse?
* Which should be the default values of `format` and `format_id`?