Use `open` to open file descriptors in place of `file`

Reason: there is no `file()` in Python 3.

Fix was originally presented by @kovidgoyal in [3deb69][1], but I cannot
cherry-pick this commit, because its commit message is highly undescriptive.

Fixes #1008

[1]: https://github.com/kovidgoyal/powerline-daemon/commit/3deb6988c8992d92ef43d9f03c7a725ac9836c20
Solve encoding issues in powerline python client
Perform shell word splitting in zsh bindings

This makes POWERLINE_COMMAND be consistent across various bindings.
Make tcsh check whether some variables are defined or empty

Makes it consistent with other shells
Make tests test powerline daemon with valid python and all clients
Also test whether running daemon is successfull without arguments
Do not require scripts/powerline

It may be immediately moved to bin/ sometimes or not compiled at all for some
reason.
Add --socket argument to all clients

Makes it not needed to kill daemon for testing, but disables implicit
`powerline-config shell command` testing.
Do not execute all tests in travis
Make test_shells/test.sh compatible with dash
Disable dash tests in travis
Do not try to test ipython if it is not available
Merge pull request #1009 from ZyX-I/fix-1008

Improve Python 3 compatibility when using daemon and client