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.