Markdown reader: Combine consecutive latex environments.

This helps when you have two minipages which can't have
blank lines between them.

See #690, #1196.
LaTeX writer: Use `\textquotesingle` for `'` in inline code.

Otherwise we get curly quotes in the PDF output.
Closes #1364.
Add new typeclass, Reducible

This defines a typeclass `Reducible` which allows us to "reduce" pandoc
Inlines and Blocks, like so

    Emph [Strong [Str "foo", Space]] <++> Strong [Emph [Str "bar"]], Str
"baz"] =
        [Strong [Emph [Str "foo", Space, Str "bar"], Space, Str "baz"]]

So adjacent formattings and strings are appropriately grouped.

Another set of operators for `(Reducible a) => (Many a)` are also
included.
Move some of the clean-up logic into List module.

This will allow us to get rid of more general functions we no longer need in
the main reader.
Use Reducible in docx reader.

This cleans up them implementation, and cuts down on tree-walking.
Anecdotally, I've seen about a 3-fold speedup.
Add Reducible to cabal file.
Add test for correctly trimming spaces in formatting.

This used to be fixed in the tree-walking. We need to make sure we're doing it
right now.
Merge pull request #1366 from jkr/reducible3

Docx rewrite and cleanup (in terms of Reducible typeclass)
Add copyright block to T.P.R.Docx.Reducible.
Merge pull request #1367 from jkr/reducible-copyright

Add copyright block to T.P.R.Docx.Reducible.