Fix py3 compatible with all tests passed

UPDATE: The pull request fixed all the broken features and tests under py3.


~~This pull request fixes unsuccessful tests in `features` and `tools/test-features` on Python 3.4.~~
~~But the `issue.features` still need several hours to fix and might need to discuss in detail.~~

~~Also `nosetests` not fully worked on py3 yet, will be the next goal.~~


Welcome any comment! 


Potential TODOs:

* Get rid of 2to3 code, no need to run the command with this PR. 
* Might introduce `__future__` to handle py2/py3 differences.