add an ets backend and rafter_backend behaviour

This commit incorporates the following changes:

Improvements
 * Separate Read and Write Path
   * Read path is linearizable, but doesn't require logging operations
   * Uses successful next tick of append_entries as an implicit quorum
 * ETS Backend
 * Backends can maintain their internal state now
 * Statem test for ETS Backend
 * script to start a node for development purposes

Bugfixes
  * uses noops to advance commitIndex
  * explicitly handle timeouts in rafter_consensus_fsm

Libraries
  * Removed eper from rebar.config