Override Kramdown parse_block_html for custom inline elements
Override Kramdown parse_block_html for custom inline elements

We use custom elements as a means to convert markdown into a allowed
HTML element that can pass through sanitisation, and then be converted
into safe HTML that we produce that would potentially fail sanitisation.

A problem we have with custom elements is that Kramdown does not
recognise these to be inline elements and does not put them inside
paragraph elements like other inline elements.

For example:

```
irb(main):006:0> Kramdown::Document.new("<span>text</span> that is inline").to_html
=> "<p><span>text</span> that is inline</p>\n"
irb(main):007:0> Kramdown::Document.new("<custom>text</custom> that is inline").to_html
=> "<custom>text</custom>\n<p>that is inline</p>\n"
```

This is unlike commonmark which can handle conversion of inline elements
without configuration:

```
irb(main):004:0> CommonMarker.render_html("<span>text</span> that is inline", :UNSAFE)
=> "<p><span>text</span> that is inline</p>\n"
irb(main):005:0> CommonMarker.render_html("<custom>text</custom> that is inline", :UNSAFE)
=> "<p><custom>text</custom> that is inline</p>\n"
```

For Kramdown to perform in this manner it needs to be configured with
which elements are inline elements. This therefore builds on top of the
default parse_block_html [1] by checking the element isn't on a custom
elements list first.

[1]: https://github.com/gettalong/kramdown/blob/54fa522863587189ea56aa42328c673f0bfb94f6/lib/kramdown/parser/kramdown/html.rb#L82-L87

alphagov/govspeak,alphagov/govspeak