Begin testing connection pools
Refactor tests and remove redundant code.
Add additional warnings to be checked on test build
Refactor Internal.Client to use mysql-simple like API.

The connect, close, and ConnectInfo API mirrors what is found in
popular libraries such as mysql-simple and postgresql-simple.
Implement exponential backoff in polling hyperclient_loop
Minor refactoring and re-add internal tests, for now.

The internal tests still experience failures related to buildTestBracketed
on multi-threaded test runs. It's not ideal, but in the next version a
global client sealed with an MVar could be used to run the internal tests.

Finally, it's occurred to me that there may be some issues with multi-threaded
tests overlapping on keys. If two tests simultaneously put to two keys, they
could overwrite one another and cause one test to fail. A key prefixing scheme
in the tests would probably be good to implement, but as the keyspace is large
and keys aren't tested multiple times in the same test, I suspect it hasn't
been the cause of any issues yet and is unlikely to be in the future.
Switch non-pooled tests to use a single connected Client
Add arbitrary instance for attributes in default space, test for randomly generated large attribute values
Add hyperclient attribute checks for conditional puts
Add hyperclientConditionalPut to internal API
Replace deprecated #import with #include
Fill out API to include conditional and if-not-exist put.

Slight changes otherwise, as well as cleanup of warnings.
Clean up imports and comment out unused tests.
Add arbitrary instance for an arbitrary HyperDex intrinsic datatype.
Fill out remaining arbitrary HyperDex intrinsic datatypes.
Test round tripping an arbitrary and randomly chosen HyperDex datatype.
Remove tests for particular properties, now merged into one.
Refactor internal into shared client tests
Add tests and flesh out API for conditional put - TODO: make it work
Narrowing in on issue with conditional put