Implement Update using the non-callback version of CAS (CASNext)

The problem with the callback is that the memcached client was kept in
use while the client callback was invoked. Combined with the limited
size connection pool, this created the opportunity for a lock-ordering
deadlock: if enough client goroutines call Update() at once and, in
their callbacks, call another Bucket method, they can eventually fail
to acquire a memcached client connection and deadlock.
(See couchbaselabs/sync_gateway#119)