Save ensemble/cluster state when cluster enabled

Fixes #34 and hopefully basho/riak_kv#983
See #34 for details

Note that even when `riak_ensemble_manager:maybe_save_state/1` fails during
enable, we still want to call `riak_ensemble_manager:state_changed/1` to
ensure that we don't have inconsistent ets tables and running peers.
However, since this activation is not saved we can still send up with
the issue in basho/riak_kv#983.
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.
Merge pull request #35 from basho/bugfix/sync-save-state-on-enable

Save ensemble/cluster state when cluster enabled

Reviewed-by: engelsanchez