ENH: Safer stream handling for Python 2
The lengthy conversation that started this issue can be found in the pull request #4955.

The basic idea is to create a safe stream wrapper in the `PythonParser.__init__` function that will always emit unicode strings instead of the current implementation that in some cases return `str` and in other return `unicode` depending on the thing that is passed as the input. The same thing should done for the `CParserWrapper`.
