Fix riak_kv_bitcask_backend delete spec

Pair-programmed with @reiddraper

bitcask:delete only ever returns `ok`.
Remove unused key_counts/0|1

Pair-programmed with @reiddraper

Dialyzer found a bug with this function, and it appears to be completely unused
in Riak. It was introduced in 39343fab. In the creation of the record, ref is
set to undefined, which will crash the underlying call to Bitcask when it tries
to grab information of of the process dictionary.
Make continuation a non-exported non-opaque type

Pair-programmed with @reiddraper

Dialyzer was treating the fields of the KV_INDEX_Q that were of the same
type as continuation() as opaque and getting mad about record
construction.
Don't violate opaque type

Pair-programmed with @reiddraper

Use the eleveldb:db_ref() type instead of assuming it's a reference()
type.
Fix index_n type-spec

Pair-programmed with @reiddraper

We create a magic value with {0, 0} as the value, so the type spec must
account for this.
Comment case statement which can never match

Pair-programmed with @reiddraper

There is commented code from consistent_put that talks about adding this
in the future, so we put a comment on the receiving end of this function
saying the same.
Remove unecessary data cleaning from backup

Pair-programmed with @reiddraper

Dialyzer caught that the bucket will always be a binary, so there is no
need to convert it. Hopefully there is no data on disk that uses atoms
for buckets...
Fix riak_kv_bucket dialyzer warnings

Pair-programmed with @reiddraper

* Change the expected type of allow_mult
* Change the error reason type to allow strings
Fix badmatch error that dialyzer found

Pair-programmed with @reiddraper

Previously we were pattern matching a two-tuple where the value returned
was a proplist. This change now treats the value correctly as a
proplist. Note, this is still an issue in 1.4, since this was
forward-ported from the 1.4 series.
Fix riak_kv_crdt type specs

Pair-programmed with @reiddraper

The accumulator used internally in merge_contents is a three-tuple, not
a two-tuple.
Fix riak_kv_eleveldb_backend dialyzer errors

Pair-programmed with @reiddraper

* db_ref is an opaque type, we don't know it's a reference
* dialyzer claims the last clause of fold_keys_fun is completely
  subsumed by the previous clauses. If it's not, we'll throw an
  exception either way with a bad match.
Remove dead code from riak_kv_get_fsm

Pair-programemd with @reiddraper
Fix type specs in riak_kv_get_put_monitor

Pair-programmed with @reiddraper
Fix type spec in sms.erl

Pair-programmed with @reiddraper
Fix riak_kv_mrc_map type spec

Pair-programmed with @reiddraper

The caller of this function handles the case where the result of
Module:Function does not return a list, so the type spec should reflect
that
Fix type spec for riak_kv_pncounter:update/3

Pair-programmed with @reiddraper
Remove unused argument from function

riak_kv_entropy_info:handle_index_info is not exported. It was being
called once internally, with an argument that was ignored in its
implementation. This commit simply removes that argument.
Fix type spec

update_hashtree is called with both binaries and riak objects.
Fix type spec

diff_index_specs clearly accepts 'undefined' as an argument because it
calls index_data, which pattern matches on undefined in its definition.
Fix type spec

Fixes the return value of riak_object:from_binary