A simple way to store a PN-Counter in a riak_object

Adds an API endpoint for PB and HTTP for incrementing (and getting the value of) a counter.

The counter is implemented as a PN-Counter. In fact the PN-Counter and G-Counter modules from riak_dt are copied into riak_kv (along with their quickcheck tests).

There is a wrapper module `riak_kv_counter` that mediates between `riak_object` and `riak_kv_pn_counter`.

The regular get/put fsms are used. Some small change is made to the vnode to allow counter siblings to merge to a single value before being written to disk.

The `wm` and `pb` endpoints also use the `riak_kv_counter` merge function to ensure a single value is returned to the user.

If (by accident, I hope) a bucket/key is written too as a regular riak_object write, the conflicting riak_object sibling is maintained.

To use store counters the bucket _must_ be `{allow_mult, true}`. I recommend that you don't mix counter and non-counter objects in the same bucket.

----
Examples:

   > curl -v -X POST localhost:8098/buckets/my_counters/counters/c1 -d"1"
    <HTTP/1.1 409 Conflict
    < Server: MochiWeb/1.1 WebMachine/1.9.2 (someone had painted it blue)
    < Date: Thu, 25 Apr 2013 16:07:28 GMT
    < Content-Type: text/plain
    < Content-Length: 50
    Counters require bucket property 'allow_mult=true'*
    > curl -X PUT localhost:8098/buckets/my_counters/props -H"Content-Type: application/json" -d "{\"props\" :  {\"allow_mult\": true}}"

   > curl -X POST localhost:8098/buckets/my_counters/counters/c1 -d"1"
   > curl localhost:8098/buckets/my_counters/counters/c2
   1
    > curl -X POST localhost:8098/buckets/my_counters/counters/c1 -d"100"
    101
    > curl -X POST localhost:8098/buckets/my_counters/counters/c1 -d"-1"
   100

Etc.

----- 
Depends on:
https://github.com/basho/riak_pb/tree/rdb-kv-counter

Riak test at
https://github.com/basho/riak_test/tree/rdb-kv-counters

PB support at
https://github.com/basho/riak-erlang-client/tree/rdb-kv-counter


----

Obviously I'll create a squashed branch after the discussion / review.