Allow setting g:powerline_pyeval to PowerlinePyeval for testing
Encode vim statusline to &encoding before returning

Partially fixes #1072
Use proper encoding to convert values in various places

Fixes #1072
Compare bytes() objects in matcher functions

Fixes #1071
Add tests for invalid unicode filenames

Ref #1071
Do not use segment_info['buffer'].name ever

This results in UnicodeDecodeErrors for non-unicode filenames
Remove the only remaining reference to `u'` string prefix
Add code that will return bytes() from vim functions in Python-3
Do not use vim_funcs['bufnr'] for modified_buffers segment
Make vim_get_func handle rettype argument better

As usual it was not working well in Python-3
Fix overrides in Python-3

With bytes() keys they were not working well since in Python-3 bytes() is not
comparable with str().
Allow bytes paths in VCS bindings
Allow bytes paths in watchers
Run watcher tests with bytes() arguments
Replace os.path.walk with os.walk

os.path.walk was removed in python-3
Allow powerline-lint and sphinx to run with fake vim object
Also catch INotifyError when testing tree watcher
Merge pull request #1077 from ZyX-I/fix-non-unicode-vim

Fix non-unicode strings and locales handling