Add CRDTs to Riak KV

Adds  Maps and Sets to Riak.

Depends on the `develop` branch of riak_dt.

What to say: generalises the 1.4 `riak_kv_*_counter` code to allow Maps and Sets to be stored in Riak.

What's not done? GC, MDC, backwards compatibility with 1. counters, bucket type support (we fake it.)

This is very much a pre1 PR to start to integrate and investigate.

Still needs a couple more tests (eqc if there is time) for `riak_kv_crdt` for update and update with preconditions.
Also, needs riak_tests writing (will start on that now, using REC branch here (https://github.com/basho/riak-erlang-client/compare/feature/sdc-datatypes))