Port to Python3 - part 2

- Second commit to port Neovim python-client to python3
- One of the biggest changes from python2 to 3 are strings.
  Msgpack in python2 decodes raw bytes as strings, but in
  python3 it decodes then as binary strings - these are incompatible
  with the current use of strings inside the python client.
- Msgpack does have an encoding option to automatically decode
  raw bytes - for Neovim the raw bytes returned by the API are
  ALWAYS utf8 strings, with one know exception the api discovery
  method (0) returns an actual binary msgpack payload
- The discover_metadata() method is now private to the Client class
  and called from the constructor
- We now use a raw Msgpack Unpacker for metadata discovery and
  set a utf8 unpacker afterwards