Ensure activated cluster state is saved before use

In order to do this we turn `riak_ensemble_manager:activate/0` into a
pure function. We do this by removing calls to `ets:insert/2` and
returning the data to be inserted instead. The caller can then attempt
to save and sync the data. If this succeeds, then finally the call to
`ets:insert/2` is made and the state is updated along with `ok` being
returned to the client.