Handoff manager EQC testing

Starting with code written by @jrwest long ago, @aberghage and I have created a more comprehensive test suite using `eqc_statem` for `riak_core_handoff_manager`.

Tests include:

* Add outbound and inbound transfers
* Disable future transfers using `riak_core` environment variables
* Control concurrency level using `set_concurrency`
* Retrieve concurrency level using `get_concurrency`

Near-term plans for extending this:

* Test transfer lifecycle (errors at start or during transfer) as part of Alex's improvements to error status management #630 
* Test the more sophisticated enabling/disabling transfers as part of Alex's branch `feature/atb/handoff-enable-disable`
* Test resize transfers

It's hard to tell what this function is supposed to do. I think the following looks clearer. You could put it in it's own function. Our typical naming convention would also call the function `maybe_add_outbound` instead of `add_outbound_if`.

```erlang
ReachedMaxConcurrency =  length(valid_handoffs(Handoffs)) >= MaxConcurrency,
case PreviousOk orelse ReachedMaxConcurrency of
    true ->
        S;
    false ->
        Key = {outbound, Idx},
        Results = [Result | ListOfResults],
        S#state{handoffs=lists:keystore(Key, 1, Handoffs, {Key, Results})}
end
```