Create a new $LegislativeList markdown tag.

To allow editors to use their own numbering for ordered lists, we need
to allow them to create a nested "ordered list" with a special class
that can be used to turn off ordinary numbering and change intent levels
etc.

Kramdown by default munges our desired input format into an unholy
terror of nested UL and OL tags, which isn't ideal.

Therefore, we had two options; either create our own list markdown
parser from scratch avoiding kramdown altogether, or disable Kramdown's
handling of ordered lists, treat it as an unordered nested list, and
then replace the tag parts.

Given that writing a list markdown parser is somewhat complex (see
https://github.com/gettalong/kramdown/blob/master/lib/kramdown/parser/kramdown/list.rb),
We (me and @evilstreak) chose the latter approach.

However, there are two (known) downsides:

 1. A dependency has been added on the internal workings of the kramdown
    gem, which may complicate upgrades.
 2. This approach may not be thread safe.
Overrides now adjusts Kramdown from the outside.

Per a PR comment by @bestie it'd be nicer (relative to the previous
commit) if Kramdown wasn't reopened and instead we "reached in" and
modified kramdown's internals when required. Could lead to less
confusion down the line.
Merge pull request #25 from alphagov/add_legislative_list_markdown_tag

Create a new $LegislativeList markdown tag.