[WIP] Initial cut of Go support

This is a placeholder for Go support in Neovim. Marking as `WIP` but I would appreciate any comments/feedback now.

I have put some [overview notes into a Wiki](https://github.com/myitcv/neovim/wiki/Overview-of-writing-and-using-Go-packages-with-Neovim) that explain the proposed approach for Go. This is a good place to start. Please feel free to ask questions or provide feedback here however.

Thoughts/feedback/whatever graciously accepted.

> Thanks @tarruda - to be honest I'd spent more time on the Go side... will look more into your most recent Python integration for the best practice.

Some of these changes were performed to make it simpler having hosts for languages that don't support dynamic code loading such as go. The idea is that nvim collects a list of plugin paths, and when the host is required it will call the Require*Host function, which can get the list of plugins and pass to the host's program as arguments. Eventually it will be possible to dynamically change this list of plugins, but that will make Nvim restart the host. by calling it's "shutdown" method and invoking "Require*Host" again

In a few words: You no longer need to worry about dynamic plugin loading: Just take the list of plugins as program arguments, and handle a 'shutdown' msgpack-rpc method exit the host