make each test uses its own buffer (#98)
make each test uses its own buffer (#98)

The way tests were written, they were all using the same buffer.
And since the tests are all asynchronous, there was a good chance
that the input of one test would affect the result of another test.
To make things worse, each test was expecting the buffer to be in
the state the previous test would have left it, which does not
work well with `jest --watch`, or running one test as a standalone.

What I did was to add a wrapper, `withBuffer`, which creates a new
buffer before the test, makes it accessible to the test itself,
and then close it down once the test is done.

Was discovered when doing work for #96
neovim/node-client,neovim/node-client