tools/to_unicode: return verbatim value if it is not a string

Passing None, False etc. through that function shall not break it.
protocol_xmlrpc: allow non-latin chars on `setsockopt()` errors

When system locale is other than en_US, I/O errors may be resolved to
i18n'ed strings. These will be system-charset-encoded.
json_helpers: provision for 'browse_null' encoding in JSON

`browse_null` server-side objects may need to be serialized, to None.
Subclassing the encoder would create a significant overhead, so we
prefer to let a pluggable provision for that server-side class.
json_helpers: transfer of binary objects (buffers)

Python already provides a low-level basic type for data chunks, so
let that be encoded as a "binary" object.
agent_commands: "single-shot" mode for agent daemons

In daemon mode, agent scripts will continuously fetch and execute
commands from remote server. That loop is inside this library.

However, for development/debugging purposes, we may want sometimes
to only execute one command at a time, still using all the regular
semantics/flow.
Instead of calling thread.start(), parent code shall only call our
`run(single_shot=True)` . Then, our code will just iterate once.
setup.py: bump version to 0.8