centralize versions in top-level POM
isolated protobuf RPC stuff in own module

* barge-api contains base objects (model), currently generated through protobuf but would be better to have POJOs
* barge-core contains the base replica logic and Raft protocole implementation itself
* barge-proto-rpc implements specific replica instance based on Netty/Protobuf client/server
fix wiring of modules and make tests more explicit
further separation of concerns between core and rpc

* moved some interfaces and annotations to api
* make proto-rpc depends on api and not on core
* create NettyRaftService that knits everything together

Integration test still failing but for apparently different reasons than in master.
Merge branch 'master' into isolate_rpc

Conflicts:
	barge-core/src/test/java/org/robotninjas/barge/NettyServiceTest.java
removed barge-api project and moved proto files to barge-core
make integration test pass

* fix number of threads in event loop
* generalize counter cluster
increase timeout for leader election
increase timeout for leader election to 1 min
reverted crappy change...
Merge pull request #46 from foldlabs/isolate_rpc

Isolate betty based RPC from core
introduced state transition listener
use transition listener to check for leader election when testing consistency
implement type() in super class where possible
Merge pull request #56 from foldlabs/wait_for_leader

Wait for leader election on group of counters
extracted Raft interface from context
hide state implementation details from state context

* refactor StateFactory to make State from StateType
* cleanup and merged tests
Merge pull request #57 from foldlabs/refactor_state_factory

hide state implementation details from state context
Merge branch 'encapsulate_raft_thread' of github.com:foldlabs/barge into foldlabs-encapsulate_raft_thread

Conflicts:
	barge-core/src/test/java/org/robotninjas/barge/state/DefaultContextTest.java
Merge branch 'upstream' into start_stop

Conflicts:
	barge-core/src/main/java/org/robotninjas/barge/log/RaftLog.java
	barge-core/src/main/java/org/robotninjas/barge/state/Follower.java
	barge-core/src/main/java/org/robotninjas/barge/state/Leader.java
	barge-core/src/main/java/org/robotninjas/barge/state/RaftStateContext.java
	barge-core/src/main/java/org/robotninjas/barge/state/Start.java
	barge-core/src/main/java/org/robotninjas/barge/state/State.java
	barge-core/src/test/java/org/robotninjas/barge/NettyServiceTest.java
	barge-core/src/test/java/org/robotninjas/barge/state/BaseStateTest.java
	barge-service/src/main/java/org/robotninjas/barge/NettyRaftService.java