Provide clone overrides for each operation

Motivation
----------
Add a clone override for each operation so that the operation can be
cloned and it's (select) internal state preserved. This is useful for
operation's that have failed for example with a NMV and will be retried.

Modifications
-------------
Override the virtual Clone method and provide's an operation specific
implementation.

Result
------
An operation can be cloned with operation specific fields preserved. The
following fields are typically included: key, value (if exists), CAS,
CreationTime and VBucket.

Change-Id: Ifafcff0b8e83d5cc471fe8863aa5853fba613205
Reviewed-on: http://review.couchbase.org/43860
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Brett Lawson <brett19@gmail.com>