Correctly implement tests for list lpush, rpush, set add, remove
Implemented and tested atomic map operations (except conditional put)
Implement and comment out conditional map add
Bump version
Refactoring APIs for search operations, perf improvements.

Added support for longer-running operations that may reuse or create
new handles to track. As well, added INLINE pragmas for much of the
internal API to improve performance. (Subjectively, 10x faster when
compiled without any optimization. Greatly improved test run times.)
Implement HyperDex search.

There is possibly a race condition in search that occasionally leads to a
`Left HyperclientGarbage` result too soon. When that condition does not
occur, the search succeeds to completion.
Commit demonstrates race condition-like behavior after tests execute.

For a good demonstration of this, do:

cabal configure --enable-tests
cabal build tests
./dist/build/tests/tests -a 1 -t atomic/list

The -a parameter sets the number of iterations to 1 and the -t parameter
selects a subset of tests that will only do a small amount of work on the
database.

There are a few tracing statements in choice locations to demonstrate where
the problem lies and how it occurs after invoking hyperdex_search. The result
of calling it too soon after creating a hyperclient is a negative handle, which
per the spec indicates the status pointer should be set. The value then is either
HYPERCLIENT_POLLFAILED or HYPERCLIENT_INTERRUPTED.

This problem is not isolated to hyperdex_search, but this is the first time
I've seen the issue reoccur with such frequency. The threadDelays in the
preamble function of test/main.hs were originally implemented to prevent
this problem, but it appears that even so, after connecting the client on
line 53 of test/main.hs and adding a 250ms delay, the negative handle is still
often returned by the call to hyperclient_search.

In a test of 1000 runs without the delay using "-a 1 -t atomic/int", the results
were:

661 successes (termination with HYPERCLIENT_SEARCHDONE)
339 failures, negative handles returned immediately by hyperclient_search
  300 - HYPERCLIENT_POLLFAILED
  39  - HYPERCLIENT_INTERRUPTED