Ref node redesign

Some comments added and started the NameServer implementation. 

I'm sorry there is so much code. 

And I'm really not sure how we will handle updating the state of the ordering modules when someone joins.

1. All modules have different needs
  1. FIFO needs the current sequence of ALL nodes (Unless I've misunderstood)
  2. Causal needs every nodes current clock
  3. Total just needs the total ordering when the node joined
2. When an ordering has changed its number of members, what will happen if an old message is received?  

I think this can be fixed by:
  When receiving a NewMember message:
    1. Do not send any new messages (Store them for later, so we don't change our state)
    2. Wait until all messages in holdback queues are empty. (Might not be needed)
    3. Reply with something specific to our ordering module to the distinguished node.
    4. The distinguished node sends a list of nodes and the required state to all members