Optimize riak_kv_entropy_info:exchanges/2

This commit changes riak_kv_entropy_info:exchanges/2 from being
an O(num_primary_vnodes) operation to an O(1) operation. Since
exchanges/2 is used heavily for riak_ensemble based syncing, this
change significantly improves riak_ensemble usage for large rings.
Fix security-enabled delete handling for nonexistent resources.
Refactor forbidden/2 and resource validation helper functions.
Further refactorings to forbidden/2.

- Move method_to_term to riak_kv_wm_utils.
- Put resulting and unexplained dialyzer error into ignore file.
- Rename validate_unforbidden.
Fix R15 dialyzer issue in riak_kv_wm_utils.

- Remove the case clause after the http_uri:parse/1, it has been
deprecated.
- Remove the entry for the dialyzer warning in the ignore file.
Fix whitespace.
- Adds an error check to the bucket lookup in the init function to catch
  scenarios where an undefined bucket type is specified (https://github.com/basho/riak_kv/issues/875)
- Modifies riak_kv_buckets_fsm:init/2 to check that the bucket type
  exists.  If it does not, the FSM will stop with a <<"no_type">>
reason.
- Modified the riak_kv_buckets_fsm:init/3 function to directly call
  riak_core_bucket_type:get to defer tricky pattern issue to later
refactoring
- Loosens the pattern match in the
  riak_kv_buckets:maybe_bucket_type_exists