Add disk stats to `/stats` output to make consistent

As pointed out by @fygrave in #285, `riak-admin status` shows
diak stats, but `/stats` does not. This fixes that.#285, `riak-admin status` shows
diak stats, but `/stats` does not. This fixes that.#285, `riak-admin status` shows
diak stats, but `/stats` does not. This fixes that.
add request_hash/1 to riak_kv_vnode & export object_info/1

necessary to support resizing ring
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.
make PR/PW account for forwarding during ring resizing
changes to aae to support ring resizing

* dont create trees initially when starting primaries in
a larger ring
* handle cases where exchange is enqueued for index that
exists in older, larger ring (after ring is shrunk)
dont forward gets during ring resizing

all writes are performed locally so no reason to add
extra network traffic
move bucket_nval_map/default_object_nval to core
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
nval_map/1 needs to be exported by vnode for ring resizing
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