Make several hardcoded settings user configurable

This pull-request centralizes all settings / timeout values into the new `riak_ensemble_config` module as well as makes many of these settings user configurable via `app.config`. It's unclear which (if any) of these settings should be cuttlefish'd (nor what the appropriate user-facing names should be).

Addresses #18 

The intention is for compile time to replace things like `?FOLLOWER_TIMEOUT` with `riak_ensemble_config:follower_timeout()`, which is call that is then made dynamically at runtime. Some of the functions in `riak_ensemble_config` are hardcoded, others map to application variables; in the future, we might use a different approach to configuring things, but that'll remain being the same API.

Let's test things.

As written in `riak_ensemble_peer.erl`:

```erlang
reset_follower_timer(State) ->
    set_timer(?FOLLOWER_TIMEOUT, follower_timeout, State).
```

What appears in `riak_ensemble_peer.P` after `erlc -I include -P src/riak_ensemble_peer.erl`:

```erlang
reset_follower_timer(State) ->
    set_timer(riak_ensemble_config:follower_timeout(), follower_timeout, State).
```

Looks good.