Swapping out a "copy on write map" for ConcurrentHashMap.

The previous implementation had code that turned a HashMap into,
essentially, a copy-on-write map that locked around the EpidemicServer.class
object when it was going to do a replacement.

I've replaced that code with a ConcurrentMap, using putIfAbsent to clarify the
logic somewhat.
Using a CopyOnWriteArraySet instead of an AtomicReference<Set> that retries while copying.
Merge branch 'master' of github.com:dclements/revori into protocol_hashmap
Merge pull request #43 from dclements/protocol_hashmap

Swapping out a "copy on write map" for ConcurrentHashMap.
Simple revision server refactoring.

- Moving it into its own package.
- Adding some basic unit tests.
- Adding JSR330 to the classpath and annotating the constructor.
Renaming 'my' to 'default.'

The name "My*" is rather nondescriptive.  This change updates it to use Default instead,
which is not a lot more descriptive, but helps distinguish "MyRevision" as a documentation
example from "MyRevision" the actual class.
Making a static map immutable.

- Replacing instances of static map construction with Guava's ImmutableMap.
Cleaning up headers and generics.

- Removing unused imports.
- Minor tweaks to use of generics.
First stab at reducing visibility of member variables.

Per Effective Java, Item 13: "Minimize the accessibility of classes and members."

This commit marks the member variables `private` that look like they can be made that way.
Merge pull request #45 from dclements/simple

SimpleRevisionServer refactor + Minor cleanup
Merging in master.