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.
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()
fix parse title bug
improve sohu extractor
add an aes implementation
 YoupornIE: Add support for hd videos and update Test
Print playpath with --get-url (Fixes #1334)
Merge remote-tracking branch 'upstream/master'
[generic] simply use urljoin
Remove unused imports
Add extractors for video.mit.edu and techtv.mit.edu (closes #1327)

video.mit.edu just embeds the videos from techtv.mit.edu
Fix platform name in Python 2 with --verbose (Closes #1228)
Merge remote-tracking branch 'origin/master'
Merge remote-tracking branch 'origin/reuse_ies'
Merge remote-tracking branch 'Huarong/master'
PostProcessingError holds the message in the 'msg' property, not in 'message' (fixes #1323)

Causes DeprecationWarning: http://www.python.org/dev/peps/pep-0352/
[sohu] Handle encoding, and fix tests
Merge remote-tracking branch 'origin/master'