Add overload replies to kv vnode
Added support for overload.
POC for returning {error, overload} when vnode is sad and returning to client

Updates the get/put core and FSM to detect the {error, overload} message
and returns that to the client.

Subverts ReqID in the fail response to carry back the overload error.

Adds optional delay in riak_client if overloaded in case clients
want to retry too fast otherwise.
Merge adt-vnode-proxy-overload-reply-clientmods-1.2
into adt-vnode-proxy-overload-reply-clientmods-1.3

Conflicts:
	src/riak_kv_get_core.erl
	src/riak_kv_put_core.erl
Bound the number of get/put FSMs to prevent overload

This change prevents Riak from spawning an unbounded number of get/put
FSMs during overload scenarios, eventually reaching the maximum number
of allowed processes and crashing.

The limit is configured by setting the riak_kv/fsm_limit application
variable. Setting to undefined disables overload protection, falling
back to the prior code path. This value cannot be changed at runtime,
a node restart is necessary for a change to take effect.

The limiting is implemented using the sidejob library. There are two
sidejob_supervisors, one for get FSMs and one for put FSMs. Each
supervisor independently enforces the FSM limit, thus there can be
at most (limit) get FSMs and (limit) put FSMs.

The response `{error, overload}` is returned whenever the limit is
reached.
Merge branch 'jdb-fsm-overload-1.2' into jdb-fsm-overload-1.3

Conflicts:
	rebar.config
	src/riak_kv.app.src
	src/riak_kv_util.erl
Disable get/put monitors when using FSM overload protection

The get/put monitors are no longer needed when using sidejob_supervisors
to manage get/put FSMs. This commit disables the use of get/put monitors
when overload protection is enabled, as well as changes the existing
`puts_active` and `gets_active` API to use either the get/put monitor
data or sidejob_supervisor data depending on which option is being used.
Roll eleveldb dependency to 1.3.1
Deprecate KV health checks

We are adding other load protection mechanisms in KV and consider this
implementation of health checks as troublesome since it can cause nasty
flappings when the cluster is under load, so it's being deprecated.

This leaves in place the riak_core health checks mechanism, but disables
its use by riak_kv unless {enable_health_checks, true} is added in the
riak_kv section.  That way, customers who have the previously shipped
config with {enable_health_checks,true} in the riak_core section will
also stop having health checks, but could re-add if really necessary.
Merge pull request #549 from basho/eas-deprecate-health-checks-1.3

Deprecate KV health checks
Standardize get/put FSM start_link return value
Merge pull request #547 from basho/adt-vnode-proxy-overload-reply-clientmods-1.3
Merge pull request #544 from basho/jdb-fsm-overload-1.3
Bump bitcask version to 1.6.2
Roll riak_kv version 1.3.2
Set sidejob dep to 0.1.0 tag
Prototype stat updates using sidejob
Prototype using sidejob:unbounded_cast
Make direct vs sidejob stats configurable
Add fsm active and error stats to the blob