Add bucket types support to HTTP.

This supports the proposed API from basho/riak#362.

Notes:

* Linkwalking is not supported over keys stored in bucket-types. Similarly, links can only be used between keys in the default type, as described in the proposal.
* JSON MapReduce was adjusted to support `[Type, Bucket]` as inputs for full-bucket jobs, and `[ [Type, Bucket, Key, KeyData], ...]` for specific keys. Note that the `KeyData` is required in this form, even if it is null/undefined.
* Bucket-type properties resources were added so that there is parity with the existing PB feature. Whether clients *should* be able to modify those properties is still under debate. /cc @jrwest @Vagabond 

A riak_test and support in the Erlang HTTP client cover these new features.