added flush

add the ability to flush a couchbase bucket

The basic algorithm is:

1. create a document for reference
2. call flush via the REST API
3.1 if status is 200 the flush was successful and is done
3.2 if status is 201 the flush was started but is not done yet
4. check for the reference doc if it is gone flush has finished successfully

To make this work the HTTP status is now exposed from the libcouchbase as part
of the return tuple.

Flush can be done to any bucket not just the one referenced in the connection
so I decided to expose this as a parameter, it might be more obvious to the
user so to make it always flush the current conencted bucket in this case the
bucket name would need to be exposed from the worker.
That change came to be since the error is now inside the libcouchbase_callback struct nested under libcouchbase_callback_http. I didn't feel like extending the struct to include the status for all callback structs so I decided to include it similar to libcouchbase_callback_m containing an error of libcouchbase_callback structs.