Introduce 'scheduling' context

Thie scheduling context is intended to replace the *_multi() methods by
allowing one to associate individual commands with a specific object,
which can be waited for and function like a future. This may also serve
as the basis for a future async API as well.
Remove some more unused stuff
do_make: provide more optiosn
more stuff..
Refactor views API
Use 'so->cookie' abstraction

We might want to modify what the cookie is later on
Lock: ignore built-in 'exp' value
Explicitly include api3.h
Add POD for Couchbase::Bucket
Allow specifying different value formats
re-add strerror mapping
Add some additional settings
General stylistic/warning changes in XS code

These contain various fixes for unused variables, unused typedefs, and
better naming