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.
Whats the distinction here? Is this a change that I should reflect in other error conditions?