[RFC] Core service providers with python and clipboard support

This PR will:

- Provide a basic infrastructure for implementing core services through the msgpack API
- Implement all python-related functions and commands for vim, adding some support to python plugins(pre 7.4).
- Add clipboard support using the same mechanism

It seems the basic features of Gundo, UltiSnips, Omnisharp and YouCompleteMe are ok, but YouCompleteMe is very slow(its possible that some neovim-specific tweaking will be required).

To test python plugins, my private [python client branch](https://github.com/tarruda/python-client/tree/scripting-support) is required(it has a hardcoded log configuration to /tmp/script-host.log). YouCompleteMe users should probably test for `!has('neovim')` before loading the plugin.

I also plan to add options for customizing the command used to start the providers(to use PyPy for example), but that will go in another PR.

In the future, the provider module will be used to externalize or override more core services, such as  code completion(projects like YouCompleteMe will have first class support in Neovim) or the spell checker.

CC @SirVer @Valloric @Shougo @ZyX-I for feedback
It's intentional. We keep track of "features" for two reasons:

- To allow Neovim automatically start some providers on-demand
- To make the result of expressions such as `has('python')` or `has('clipboard')` compatible with vim

I have re-added validation that blocks a channel from overwriting another provider, but I this should also be done on a feature level(to stop a single feature from being implemented by multiple channels), so :+1: