Ignore {ack,_,now_executing} that arrive late
borshop kludge: adjust temporary dialyzer.ignore-warnings
Fix some dialyzer errors

riak_kv_vnode:fold_extras was only ever called with the atom 'keys' as
its first argument, so I just renamed the function and removed the
unused parameter. I also removed the catch-all pattern match that would
never match.
Fix some AAE dialyzer errors

This commit fixes all the dialyzer errors for `riak_kv_entropy_info`
as well as an error for `riak_kv_exchange_fsm`.  The main change was
to fix the spec for `#index_info.repaired` which is actually a
`#simple_stat{}` not a `pos_integer()`. However, even after that
dialyzer was not happy with the explicit default values of `undefined`
without corresponding entries in the type definition. This seemed like
a waste to me given that Erlang will implicitly default records values
to `undefined` and insert the appropriate type spec. This is discussed
in the following reference manual:

http://www.erlang.org/doc/reference_manual/typespec.html#typeinrecords

Here is the full list of dialyzer errors which have been fixed:

```
riak_kv_entropy_info.erl:78: Function exchange_complete/4 has no local
return
riak_kv_entropy_info.erl:83: Function exchange_complete/5 has no local
return
riak_kv_entropy_info.erl:84: The call
riak_kv_entropy_info:update_index_info({_,_},{'exchange_complete',_,_,_})
will never return since it differs in the 2nd argument fr
riak_kv_entropy_info.erl:161: Record construction
repaired::pos_integer() and last_exchange::{non_neg_inte
riak_kv_entropy_info.erl:194: The call
riak_kv_entropy_info:update_simple_stat(Repaired::'undefined' |
pos_integer(),pos_integer()) will never return since it differs in
riak_kv_entropy_info.erl:208: Function compute_exchange_info/4 has no
local return
riak_kv_entropy_info.erl:218: The call
riak_kv_entropy_info:stat_tuple(Repaired::pos_integer()) will never
return since it differs in the 1st argument from the success t
riak_kv_entropy_info.erl:225: Function update_simple_stat/2 has no local
return
riak_kv_entropy_info.erl:225: The pattern <Value, 'undefined'> can never
match the type <'undefined' | pos_integer(),pos_integer()>
riak_kv_entropy_info.erl:227: The pattern <Value, Stat = {'simple_stat',
_, Min, Max, Cnt, Sum}> can never match the type <'undefined' |
pos_integer(),pos_integer()>
riak_kv_entropy_info.erl:234: Function stat_tuple/1 has no local return
riak_kv_entropy_info.erl:234: The pattern 'undefined' can never match
the type pos_integer()
riak_kv_entropy_info.erl:236: The pattern {'simple_stat', Last, Min,
Max, Cnt, Sum} can never match the type pos_integer()
riak_kv_exchange_fsm.erl:379: Function exchange_complete/4 has no local
return
```
Create a one-arity build_filter function

When called with `undefined` as the last argument, build_filter/3 was
ignoring its first argument (it still does for backward compatibility).
Because we were providing it with a dummy 'all' argument, dialyzer was
complaining. Since we know at the call-site whether we're calling the
function with `undefined` or not, we can just use the new one-arity
version.

Fixes #923
Add 'late_put_fsm_coordinator_ack' counter
Dialyzer warning shift, part II
fix #929: wait for riak_kv_stat to unregister

The {{already_started, ...}, {child, ...}} error noted in the description
of issue #929 is caused by an instance of riak_kv_stat trying to register
its name when another instance is already registered. Add
riak_kv_test_util:wait_for_unregister/1 and use it in
riak_kv_test_util:cleanup/3 to wait for the registered instance of
riak_kv_stat to unregister and stop. Remove similar functionality in
test/get_put_monitor_eqc.erl and make that module call
riak_kv_test_util:wait_for_unregister/1 instead.

Also add goldrush to the app list in riak_kv_test_util:dep_apps/2 to ensure
it's started and stopped correctly; this prevents crash dumps caused by
{application_terminated,goldrush,killed} at the end of "make test".
Use binary_to_atom/2 instead of binary_to_existing_atom/2.

There's a possibility that the riak_dt code that contains the set
operation atoms hasn't been loaded when
riak_kv_crdt_json:set_op_from_json/1 is invoked, meaning
binary_to_existing_atom/2 will raise a badarg. We are already checking
the incoming operation as a binary via a guard on the relevant
function clause, so it is safe to use binary_to_atom/2 instead.
Whitespace cleanup
Erlang environment changes for R16B02-basho5
removed TODO saying to fix the thing I just fixed
Merge pull request #935 from basho/bugfix/jnd/everybody-to-the-limit

Fix limit checks in riak_kv_env for R16B02-basho5
Merge pull request #933 from basho/bugfix/sdc/http-crdt-badarg

Use binary_to_atom/2 instead of binary_to_existing_atom/2.
Merge pull request #932 from basho/vinoski/test-fixes

fix #929: wait for riak_kv_stat to unregister
fix #937: spawn tests to avoid unrelated messages

On slow systems the riak_kv_eleveldb_backend retry tests could fail due to
gen_event timeout messages from previous activities. Use a test fixture to
spawn these tests to ensure clean message queues.
fix #936: handle slow metrics for get_put_monitor_eqc

On slow systems the get_put_monitor_eqc test could fail due to not waiting
long enough for folsom metrics updates. Add bounded wait for metrics to
become non-negative before checking them against expected results. Also
increase max test time from 120 to 150 to avoid test timeout on slow
systems.
Merge pull request #938 from basho/vinoski/fix-936

fix #936: handle slow metrics for get_put_monitor_eqc
Merge pull request #939 from basho/vinoski/fix-937

fix #937: spawn tests to avoid unrelated messages

Reviewed-by: reiddraper
Merge pull request #913 from basho/bugfix/912

Ignore {ack,_,now_executing} that arrive late

Reviewed-by: reiddraper