Add the Query ADT, which represents a query.
Add the Query ADT, which represents a query.

This will replace the occurences of Put in the Text.Search.Sphinx
module's API.

Since we can't do proper unicode conversion with text-icu outside of the
IO monad (we need to call Text.ICU.Convert.open, to obtain a Converter
from IO) I decided to move the calls to the binary serialization
functions to runQueries', which is in the IO monad.

This also hides that we're using Put behind the scenes, and prevents the
user from just Put'ting some bogus bits at the end of a query.

gregwebs/haskell-sphinx-client