Initial support for Neovim

- Uses the Neovim python client to communicate
- New option --neovim to use nvim instead of vim
- New vim.Communicator derived class for Neovim
- The Neovim API calls currently do not match the Vim server
  functions - had to wrap calls in *call* and escape some of the
  commands
Change default delay for Neovim

- The default delay for Neovim is now 0, but the -d parameter is
  still respected if present
Log Neovim command on Communicate()
Neovim: Replace command_output() with eval()
Use ArgumentDefaultsHelpFormatter in ArgumentParser
Add default delay info to usage help
Replace VroomEnd with qa!
Only import neovim module if necessary

- Delay importing of the neovim module until we check if --neovim
  as passed
Remove startup time for Neovim

- For Neovim we don't respect startuptime, instead we wait until the
  Neovim communication socket is created.
- To avoid a lock we stop waiting after a maximum time of 5s.
Update --startuptime usage msg for Neovim
Change default --shell-delay for Neovim to 0
Remove Neovim socket on Kill
Bump version to 0.10.0
Fix backslash escaping for Neovim

- Escape backslashes
- Fix escape for \<
- Make the escaping code more clear
Use the new 'feedkeys' API function for Neovim
Fix @end directive when the buffer only has 1 line

The previous test was `if not self._line`, which caused `EnsureAtEnd` to raise
an exception for buffers with 1 line since 0 is a falsy value
Add directives for defining and running macros

This adds three directives:

- @macro (name): Starts recording a macro identified by 'name'
- @endmacro: Stops recording a macro
- @do (name, kwargs): "Execute" the macro identified by 'name' by replacing the
  directive by the recorded macro contents, using kwargs to format the lines
Bump version to 0.11.0

Changes since 0.10.0:
  * Fixes for neovim support (handle backslash escaping better)
  * New macro support: @macro, @endmacro, and @do directives
Suppress unhelpful arg defaults