Major refactoring

* `Neovim` is now a type synonym and no newtype anymore
* `Neovim` can now store arbitrary states
* `NvimInstance` is now `NvimObject`
* 'NvimObject` is now safer by default, this helps debugging and mostly
  internal things are affected
* Generated code throws less errors now and uses the safer `NvimObject`
  functions