add Ivory.Language.Plugin

This is a GHC plugin that rewrites Ivory programs to insert source
locations referring to the original Haskell source. It currently
requires the -fhpc flag to get the source locations from GHC, but
that should change with the planned introduction of DWARF support
in 7.10.

See ivory-examples/ivory-examples.cabal for an example of the
options you should pass to GHC to enable this plugin.
clean up
add option to ivory-backend-c to not output srclocs
expose ensures_
update ivory-backend-acl2
ivory language: div, rem to Euclidean div, rem.
concrete syntax: remove warnings for GHC versions.
concrete syntax: parse lit strings w/out quotes.
add source locations to Ivory.Opts.TypeCheck
make plugin support GHC >= 7.2
more backwards compatibility
concrete syntax: uninitialized local allocation for structs.
Force strictness for CodeBlock's `mappend`.

CodeBlock is the monoid for the Ivory monad's WriterT. MonadLib's
WriterT is strict in the output monoid, but this particular monoid was
insufficiently strict for good performance. Code running in the Ivory
monad for a large number of (>>=) operations could build up a pile of
CodeBlock thunks as a result.
Do constant-folding in Expr's Num et al instances.

For some applications, this provides most of the benefit of the
ivory-opts ConstFold pass, but avoids allocating the inefficient
intermediate expression tree, and preserves sharing.