Add search "test" to the end of main.
On *nix systems, use Posix API to block signals during search
Filter out empty values for more compact test output of hyperclient_search
Block GHC runtime signals in hyperclient call, retry interrupted
Implement GHC RTS signal blocking and transparent retry of hyperclient calls
Major refactoring.

The cabal file now specifies a new flag "tests" that exposes internal modules
necessary to run tests.

The Database.HyperDex.Client module now exports internal modules and no longer
implements any abstractions on top of their exports.

The .Internal.Space and .Hyperclient modules now export functions that
take a Client and a Text, as opposed to a Hyperclient and a ByteString for the
client input and space input respectively.

The .Internal.Hyperclient module is greatly simplified, the API cleaned up, and
abstractions are more neatly contained in a few large functions that deal with
the foreign interfaces.

The .Internal.Util module is now only exported with the tests flag, and does not
export ByteString and other unnecessary elements.

Tests are entirely rewritten to use the new APIs.