[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
Actually, now there will be one notification handler per exported function, command and autocmd. That is because rpc method names will no longer be specified directly for those entities and will be prefixed with the plugin path(which is determined at runtime)