Riak client abstraction [rebased1]

Rebased PR of #870 

Instead of using `riakc_pb_socket` directly, add `riak_cs_riak_client` that understands CS specific types like users and buckets. `riak_cs_riak_client` wraps one or more `riakc_pb_socket` processes. All Webmachine resource callbacks and gc/access daemons use them. 

This PR includes also:
- multibag support (this is motivation for introducing `riak_cs_riak_client`)
- bug fix of premature connection release 60b32b3

For reviewers:
Because this PR (or #870) has large diff, so commits are `rebase -i`ed
to form understandable chunks. Some are trivial (superfluous changes) and
others are adding functionalities or fix bugs.

For example, the compare view [1] without first 4 commits are composed
of `892 additions and 666 deletions`, so isn't it less touble than reviewing
full diff?

[1] https://github.com/basho/riak_cs/compare/8031fd8...feature%2Friak-client-rebased?expand=1