+ [#4] leader election tested using multi-jvm cluster tests

Also
= extracted Leader/Candidate/Follower into separate files,
  will try to make those as clean as possible
= cleanup in protocols, are now used from package objects, int inherited
+ new message to ask a node what state it is in
+ on a node's Up state, we automatically discover any raft members on it.

TODO: May have many raft's in one actor system, make this configurable!