Allow to retry Couchbase::Bucket#cas on collitions

Extend Couchbase::Bucket#cas to take a `:retry` Fixnum option that
specifies the maximum number of times the method should retry the
entire get/update/set operation when a Couchbase::Error::KeyExists
error is encountered due to a concurrent update from another writer
between its #get and #set calls.

Change-Id: Ibf7ebac9c63e460e05957004458e9e02ae803f89
Reviewed-on: http://review.couchbase.org/30336
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Tested-by: Sergey Avseyev <sergey.avseyev@gmail.com>