Adds support for Riak 2.0 datatypes (CRDTs).

Some interesting decisions made on this branch:

* Datatypes are fetched by the average user just as one would fetch a
  `RiakObject`, with `RiakBucket.get()`. This reduces the API surface
  and will make it easier to change Riak later (toward using CRDTs
  instead of riak_object internally). The downside is that we need to
  cache the datatype name in the BucketType that contains them,
  following a fetch of its properties.

* Mutations are all staged locally and the original value remains
  available at all times. You use the store method on the datatype to
  send it to the server, updates are not sent automatically. In
  contrast to the Ruby client, "batching" is the default behavior.

* There's a curious property `type_name` on all datatypes that gives a
  text representation of the type name, which is basically the
  lower-cased version of the class name. This was so we could do fewer
  imports and `isinstance()` checks in the transports, but it could
  also be useful to end-users.
Rename the jd* tests to more meaningful things and uncomment the commented one.
Correct reference to non-local class with tilde notation.
Stub out check_op_output as suggested
Merge pull request #316 from basho/feature/crdts

Add datatypes support

Reviewed-by: javajolt