[WIP] Refactor for the new Nvim plugin specification

This is PR is going in parallel with neovim/neovim#1335. Its a python implementation of a external plugin specification I'm writing based on the ideas given by many contributors.

On the python side, here is a summary of changes:

- the ScriptHost plugin has been moved to the main neovim repository, from the POV of this library it is a plugin like any other
- there's no automatic discovery/loading of plugins. It is best to reuse Vim plugin discovery instead of delegating that as an implementation of every plugin host
- decorators are used for declaring plugins and method handlers(this had been suggested in another PR by @bfredl / @jdavis).
- eventually the decorators will take care of registering the necessary vimscript boilerplate, after this it will be possible to develop plugins writing no vimscript code
- plugins don't need to be classes, they can be plain modules and the functions get the nvim object as first argument
:+1: