Remove the new/2 callback because it might be misleading.
Settle some more on client-side semantics.

* The context/1 callback was removed in favor of returning the
  type/operation/context three-tuple from to_op/1.
* Retrieved values are kept unmodified and not intermixed with local
  updates. A new dirty_value/1 callback was added that applies local
  modifications to the original state.
* Query functions in maps and sets operate on the immutable value.
* Sets can have elements added and removed without mutual exclusion or
  predication on presence in the original value.
Update riakc_pb_socket for the new semantics.

update_type/4,5 takes an operation extracted with the to_op/1
callback, and returns {error, unmodified} if the operation is
'undefined'. Because it calls update_type/5, modify_type/5 will also
return {error, unmodified} if the modification fun results in no
operations.