Temp fix for a string handling issue.

The common prefix of two strings may not be a character but a single meanless byte. Stripping it leads decoding error.
unicode_literal: simplify find_more_episodes() and handle sys.argv.
Use set literals.
unicode_literals: MPlayer::identify() use unicode because we care the texts.
unicode_literals: decode once in MPlayer::identify().
unicode_literals: MPlayer::__tee() use bytes because there are only local ascii texts to process.
univesal_literals: texts handling for url request in fetch_shooter().
unicode_literals: struct require byte string.
uncode_literals: texts handling in parse_shooter_package(). Use io.BytesIO instead.
uncode_literals: texts handling in guess_locale_and_convert().
guess_locale_and_convert() takes precise=True by default because we want to differ GBK from BIG5.
guess_locale_and_convert(): tune for GB2312/Big5/GBK logic.
Use a separate thread to reduce the noticeable lag when finding episodes in a big directory.
Owner of the default/global mplayer args is MPlayer but not Player.