Add error handler

- The NeoVim class now has an error signal, called when
  a function call fails
Remove qDebug call
Move m_function initialization
Make NeoVim::discoverMetadata protected
Remove forgotten line from old commit
Add comment in example1

- The manual calls in example1 will most likely fail, it is worth it
  pointing this out :D
Fix setError to print error messages

- The setError function should print messages with qWarning, but
  instead of printing the error message it was actually printing
  the error enum
Handle new Neovim metadata formate

- A recent commit in Neovim changes the response to function 0
  into an array [channel_id, metadata_blob] - this commit fixes
  metadata handling to support this change
Add new API data types {Buffer,Window,Tabpage}Array

- Added support for new return types BufferArray, WindowArray
  and TabpageArray
Define API typedefs in function.h

- Since we had to create some typedefs for API types in a previous
  commit I added all the missing ones, this in turn led to renaming
  the deserialisation methods in NeoVimConnector
Store channel Id
Add more pedantic compiler options

- Added Wall Wextra pedantic and no-unused-parameter as compiler
  flags
- Fixed code to allow us to build with these flags