convert accept_connections from recursive to iterative

Before, it would re-call itself after every connection, wasting a bit
of stack space on every connection. Better to just use a while loop
instead.
split accept_connections

Now accept_connections only accepts a connection and reads data from it.
The actual handling of the data happens in handle_data instead. This
doesn't change any behaviour, but prepares for the next change.
do not mix argv and sys.argv inside weechat_client
allow reading data from stdin

By running weechat-remote-notify.py with a single argument of '-', it
will read data and process from stdin once, instead of listening on a
TCP socket.
allow running an arbitrary command instead of opening a TCP connection

Together with the previous change, this allows opening up a new SSH
connection on every notification. This has more overhead, but removes
the need of exposing a TCP port (which only has limited access control
and can typically be used by all other users on the same machine).
display errors by default

Instead of always hiding error messages, they are now shown by default
and can be hidden by setting a configuration value.
Merge pull request #1 from matthijskooijman/ssh-command

Allow running arbitrary commands to connect weechat to the script.

This is not the recommended way!! If the mode is used you should create a dedicated user that receives the ssh command. And this users .ssh/authorized_keys file should make use of the command option in order to restrict the set of possible commands.