Add Couchbase::Test::Settings for settings tests
Relax the requirement for `JSON`.

We only need 2.x; nothing special or fancy
Move operation context routines to own file
Use hash table for contexts

This reduces memory leaks and makes the development model more
consistent
Beef up async code

a desparate attempt to make things a bit faster..
RV might end up being NULL during global destruction