update bad value protection for timer value

Since there are many paths to spawn a coverage FSM, it would be a lot of code duplication to validate the timeout at each of those entry points.  Instead, expand may_start_timeout_timer to guard against more categories of bad input.

Fixes https://github.com/basho/riak_kv/issues/571 

cc @jrwest @seancribbs