setup.py: use codecs.open() so it works for non-utf8 locales
Merge pull request #203 from felixonmars/setup-py3-fix

setup.py: use codecs.open() so it works for non-utf8 locales
refine tests: add time limit for curl; output shadowsocks logs