add unit test to ensure that the Engine does not drop any version change notifications in the face of concurrency
first pass at adding a NonBlockingHashMultimap data structure
copy google unit tests for multimap for better coverage and as a result fix some bugs
move logic for atomically inserting into a new record to the server'

Conflicts:
	concourse-server/src/main/java/org/cinchapi/concourse/server/ConcourseServer.java
	concourse/src/main/java/org/cinchapi/concourse/Concourse.java
	concourse/src/main/java/org/cinchapi/concourse/thrift/ConcourseService.java
CON-173: Ensure that atomic operations forked from transactions don't spin forever if the transaction fails from a version change

Conflicts:
	concourse-server/src/main/java/org/cinchapi/concourse/server/ConcourseServer.java
add bug repro to test suite
add logging for flaky test
CON-169: Add public api TransactionException to be caught for in-process
transaction failures. This commit also adds the infrastrucure on the backend
to support this

Conflicts:
	concourse-server/src/main/java/org/cinchapi/concourse/server/ConcourseServer.java
	concourse-server/src/main/java/org/cinchapi/concourse/server/storage/AtomicOperation.java
	concourse-server/src/main/java/org/cinchapi/concourse/server/storage/Transaction.java
	concourse/src/main/java/org/cinchapi/concourse/thrift/ConcourseService.java
	concourse/src/main/resources/thrift/concourse.thrift