Serialize refined types with the cereal library

This change brings in the `cereal` and `cereal-text` libraries from
Hackage as dependencies. `cereal` provides a typeclass, Serialize, for
serializing arbitrary data structors to ByteStrings. Instances can be
automatically derived through GHC.Generics. `cereal-text` provides
ready-to-use instances of Serialize for Data.Text.Text and its variants.

Instances of Serialize for data structures that represent refined types
are derived in the new module Language.Haskell.Liquid.Serialize. The
code in there currently could use some organizing and pruning: I'm sure
that there are instances in there that won't actually be used.

These instances are intended for use in the in-progress .lqhi work, in
order to save and load computed type information for verified modules.