Port to Python3 - part 1

- This is the first of a series of commits to allow the Neovim
  python-client to work with both python2.7 and python3
- Turn relative imports into 'import .submodule'
  or 'from . import submodule'
- Import StringIO from io module - for python3
- Generators are called as function next()
- Call 'exec' as a function
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