Join

1. Added coverage testing to the make file. It's a developer tool, and requires the creation of the 'cover' directory. I'm currently planning on dividing the makefile a bit, so that there's a clear set of commands targeted at users, and then a different and more involved set of tools targeted at developers. There will probably be distinctions like 'make dependencies' vs 'make dev-dependencies'.

2. I greatly increased testing coverage of our mutex use. The race-detector was not happy, as it suddenly found a great many race conditions. That's all since been fixed.

3. Joining a quorum has been implemented, with smooth synchronization. I don't think that a join attempt can fail anymore due to bad timing - if it does fail there's probably a different bug. I tried to cover all the unlucky-timing edge cases that were available and annoying in the first alpha.

4. I changed the usage of dots in our naming conventions. Previously I had decided to make dots a suffix ("Thing." + "nexthing"), but this seems to be a bad approach because 'thing' might not know it there is going to be a next thing. Now, we do ".thing" + ".nexthing", which I think is cleaner. Also fixed a few dotting bugs in the test cases. The client may need to be updated as a result.