Define messages for riak_dt clients.
Rename some DT messages for length and collision-prevention.
Allow SetOp and MapOp to have multiple arguments for ADD and REMOVE.

This makes the on-the-wire representation slightly smaller if the
client coalesces them.
Add codec module for data types and tweak some typespecs in the KV codec.
Export the riak_dt messages in Python.
Add dialyzer.
Allocate codes for the datatype messages.
Rename some messages for consistency with other proto files.
Add real update response message and codecs.
Allow the codec user to pass a proplist of type/module mappings for easier translation.

For our current types this might look like:
    [{set, riak_dt_vvorset},
     {counter, riak_dt_pncounter},
     {flag, riak_dt_od_flag},
     {register, riak_dt_lwwreg},
     {map, riak_dt_multi}]

When passed to encode_fetch_response/4, decode_operation/2 and
encode_update_response/4 as the last argument, the types will
automatically be mapped appropriately.
Reduce the size of set and map ops, and allow only one op per update.

As far as the server-side is concerned, only one operation can be
performed at a time. This coalesces the set "add" and "remove"
operations into a single "update" operation, containing both types of
member modifications. The same treatment was applied to maps, creating
a triple of adds, removes, and field updates.
Fix broken MapUpdate message.

* Duplicate field numbers
* Misplaced documentation comment
Reformat the set and map ops so that they the same as the riak_dt ones.

According to Russell's recent changes,

* Sets have add_all and remove_all (to distinguish single adds/removes
  from lists of them).
* Sets also have {update, ListOfOps} for applying multiple
  adds/removes in one go.
* Maps have {update, ListOfOps} where the list includes add, remove,
  and a field-specific update. (Really, this is unchanged from
  before.)
Fix copyright years.
Fix typo in comment, thanks @mrb.
Change warning message in clean_plt target to be more reasonable.
We only send one conceptual operation per update.
Encode the context in the update request properly.
Determine the symbolic type from the submitted operation.
Set return_body to false by default in DtUpdateReq.