Markdown reader: Fixed link parser to avoid exponential slowdowns.

Previously the parser would hang on input like this:

    [[[[[[[[[[[[[[[[[[hi

We fixed this by making the link parser parser characters
between balanced brackets (skipping brackets in inline code spans),
then parsing the result as an inline list.

One change is that

    [hi *there]* bud](/url)

is now no longer parsed as a link.  But in this respect pandoc behaved
differently from most other implementations anyway, so that seems okay.
All current tests pass.  Added test for this case.

Closes #620.
Export encodePath/decodePath from UTF8.

Removed duplicate code in src/pandoc.hs.
UTF8:  Export decodeArg.
Use local encoding for input/output rather than forcing UTF8.

Note that system templates are stored as UTF8
and will still be read as such, even if the local encoding
is different.  Text downloaded from URLs will also be treated
as UTF-8.
Revert "Use local encoding for input/output rather than forcing UTF8."

This reverts commit c69837adb648a479167be5e2d37279a02be8060c.
Require base >= 4.2 (i.e. GHC 6.12).
Added 'UTF8.' to decodeArg.
Added base dependencies for test suite.
Removed unneeded CPP conditional.

Removed code that was conditional on base < 4.2, since
now we require base >= 4.2.
More intelligent handling of text encodings.

Previously, UTF-8 was enforced for both input and output.

The new system:

* For input, UTF-8 is tried first; if an error is raised, the
  locale encoding is tried.
* For output, the locale encoding is always used.
Revert "More intelligent handling of text encodings."

This reverts commit 7272735b3d413a644fd9ab01eeae8ae9cd5a925b.
Texinfo writer:  Fixed internal cross-references.

Now we insert anchors after each header, and use @ref
instead of @uref for links.

Commas are now escaped as @comma{} only when needed; previously
all commas were escaped.  (This change is needed, in part, because @ref
commands must be followed by a real comma or period.)

Also insert a blank line in from of @verbatim environments.
UTF8:  use universalNewlineMode in reading.

This treats both '\r\n' and '\n' as '\n' on input, no matter
what platform we're running on.
Removed need for utf8-string package.

* Depend on text.
* Expose Text.Pandoc.UTF8.
* Text.Pandoc.UTF8 now exports toString, fromString,
  toStringLazy, fromStringLazy.
* These are used instead of the old utf8-string functions.
Make --id-prefix affect footnote IDs in markdown writer.

Closes #614.
UTF8:  Better error message for invalid UTF8.

Read bytestring and use Text's decodeUtf8 instead of using System.IO's
hGetContents.  This way you get a message saying "invalid UTF-8 stream"
instead of "invalid byte sequence."  You are also told which byte caused
the problem.
Shared:  Count \r as space in removeLeading/TrailingSpace.
Makefile: Use Andrea's repository for citeproc-hs.
Biblio: Remove workaround for toCapital.

Now citeproc-hs is fixed upstream, so this is no longer needed.
Closes #531.
Makefile:  Don't remove citeproc-hs and pandoc-types with clean.

Added new 'veryclean' target that removes these too.