YoutubeIE: reuse instances of InfoExtractors (closes #998)

When a IE is added to the list, it's also added to a dictionary. When a IE is requested it first looks in the dictionary and if there's no instance it will create a new one.

That way _real_initialize is only called once for each IE, saving time if it needs to login for example.
Save subtitles using the same code for all the options
Use a dictionary for storing the subtitles

The errors while getting the subtitles are reported as warnings, if no subtitles are found return and empty dict.
YoutubeIE: use the same function for getting the subtitles for the "--write-sub" and "--all-sub" options
YoutubeIE: don't crash when trying to get automatic captions if the videos has standard subtitles.
Don't try to write the subtitles if it's None
Merge remote-tracking branch 'upstream/master'
fix bug: kankan extractor not support http://vod.kankan.com/v/70/70309.shtml
add an extractor for tv.sohu.com
use ..utils/clean_html()
Add some verbosity when reporting finished downloads

For example:

    [download] Resuming download at byte 1868140
    [download] Destination: Entry #1-Bn59FJ4HrmU.flv
    [download] 100% of 3.27MiB in 4s

This format is meant to somewhat mirror the behavior of wget(1) when reporting finished downloads:

    100%[==================>] 54,836,682   788KB/s   in 74s

    2013-08-04 12:32:05 (728 KB/s) - 'google-chrome-stable_current_x86_64.rpm' saved [54836682/54836682]
fix parse title bug
changes
improve sohu extractor
More informative error
Updated the 84 length signature decryption

Updated the right 84 length signature decryption 06.08.2013
Encrypted sig 87 broken again (fixes #1200)
Added exceptions for the subtitle and video types in .gitignore
Fixed small type issue
[dailymotion] Added support for subtitles + new InfoExtractor for
generic subtitle download.

The idea is that all subtitle downloaders must descend from SubtitlesIE
and implement only three basic methods to achieve the complete subtitle
download functionality. This will allow to reduce the code in YoutubeIE
once it is rewritten.