Automatic binary string decoding

- A new parameter **decode_str** for RPCStream, connect() and spawn()
  enables automatic decoding of binary strings into Unicode objects
- Strings are decode using the &encoding option
- The default behaviour is decode_str=False, i.e. binary strings are
  returned as type bytes (str for Python2)
- Python3: unit tests default to decoding to Unicode, allowing
  the unit tests code to remain unchanged
- Python3: &encoding contents are treated as ascii, since it needs
  to be converted to unicode before it can be used
Override *decode_str* for each function call

- decode_str can now be used a keyword argument for all
  function in the API
Python3: Decode API info strings as utf8

- Regardless of decode_str, the API info object uses binary
  strings (since &encoding was not retrieved yet) for Python3
  convert the object strings to utf8 before using them
- Moved decode_obj() to util
Run Travis tests against Python 3.4