Fixed runtime error with compactify'DL on certain lists.

Closes #1452.  Added test.
Generalised more in Parsing.hs to enable the use of custom state
Added txt2tags reader

http://txt2tags.org/

There are two points which currently do not match the official
implementation.

1. In the official implementation lists can not be nested like the
following but the reader would interpret this as a bullet list with the
first item being a numbered list.

```
  - + This is not a list
```

2. The specification describes how URIs automatically becomes links.
Unfortunately as is often the case, their definitiong of URI is not
clear. I tried three solutions but was unsure about which to adopt.

* Using isURI from Network.URI, this matches far too many strings and is
therefore unsuitable
* Using uri from Text.Pandoc.Shared, this doesn't match all strings that
the reference implementation matches
* Try to simulate the regex which is used in the native code

I went with the third approach but it is not perfect, for example
trailing punctuation is captured in Urls.
Txt2Tags Reader: Integrated into pandoc
Txt2Tags Reader: Added recognition of macros
Txt2Tags Reader: Added tests
Txt2Tags Reader: Added copyright information
Txt2Tags Reader: Updated README and package description
Added compatability layer to support directory-1.1
Merge pull request #1453 from mpickering/txt2tagsfinal

Txt2Tags Reader
Added t2t to `-f` in README documentation.
Merge pull request #1457 from mpickering/generalstate

Generalised more in Parsing.hs to enable the use of custom state
Docx writer:  include abstract with Abstract style.

Addresses docx part of #1451.
Docx writer:  Added missing case from last commit.
Markdown writer:  Update definition lists.

They now behave like the new reader does. The old behavior
can be activated with the `compact_definition_lists` extension.
Markdown writer:  Better 'plain' output.

We now largely follow the style of Project Gutenberg.

Emphasis is rendered with `_underscores_`, strong with ALL CAPS.

The appearance of horizontal rules has changed (even in regular
markdown) to a line across the whole page.

Headings are rendered differently, using space to set them off.