Smooth synchronization

Fixed up synchronization and quorum joining so that the process should be smooth, even at the edge cases.

This isn't tested because the api call for 'join quorum' isn't implemented yet.

I also applied a good amount of energy to updating the way mutexes work in the participant.
not 100% certain, but I think you can just omit the Args field here (and anywhere else you use struct{}{}) and RPC won't complain.