Verify bucket type existence for list keys and buckets operations

Per defect #875, the client hangs when attempting to list keys or buckets for an undefined bucket types.

This fix represents a time/risk compromise for the previous proposed solution which made a deeper change to the riak_core_coverage_fsm -- pushing the check for bucket definition down to the state machine ensuring that all bucket type uses are consistently checked. #965 has been opened to revisit this approach when we have the time to address the issue more holistically.

Supersedes squashes the commits and integrates feedback from [PR 966](https://github.com/basho/riak_kv/pull/966).

/cc @kellymclaughlin @seancribbs @reiddraper