Add automated tests with travis integration
Bump version
Fix travis badge
Add support for server events
Bump version
Fix assertion in next_event
Add event broadcast tests
Fix example in README
Merge pull request #5 from eminence/master

Fix example in README
Correct typo
Merge pull request #6 from Mause/patch-1

Correct typo
Refactor core functions to enable thread-safety in the API

- Remove lazy initialization of helper properties
- Add 'interrupt' method to the stream class, which allows other threads to
  call API functions while another one is blocking on `next_event`
- Synchronize access to `next_event`/`msgpack_rpc_call`
Implement push_event method to enable event loop integration
Never stop reading data in the UvStream class

Even in the middle of a `write` call, we should always be prepared to read/queue
data to avoid deadlocks with nvim's process.
Bump version
Add the VimError class as an attribute of the vim object
Make sure libuv event loop is paused on all events
Add support for client-side RPC

A major refactor was necessary in order to support client-side RPC:

- Every API function now has a non-blocking variant(prefixed with `send_`).
  These send_* functions return promises that have a single `wait` method to
  wait for the result.
- The synchronous versions are still provided, but are implemented by calling
  the async version followed by a `wait` call.
- `vim.next_event` is now `vim.next_message`, and messages are specialized
  objects that represent events or requests. It always has at least three
  properties: `name`, `arg` and `type` where:
  - `name` is the method/event name
  - `arg` is the method/event arguments
  - `type` is either `event` or `request`
  Additionally, requests have a `reply` method that can be used respond to the
  request. The `reply` method accepts a single argument that will be returned
  to the remote nvim instance.
- `vim.push_event` is now `vim.push_message` and receives two arguments: `name`
  and `arg`.
- Multi-thread synchronization was refactored/improved

On top of that, the `expect` method was removed since that can be easily
implemented as a higher-level feature of a test library.
Bump version