Handle macros making blocks inside inline scopes.

When a macro in an inline scope expands to produce a block element, it
gets promoted to the next block-containing scope.

This introduced a number of changes to ASTNodes:

 - A node now knows if it's a block-level element, and if it can contain
   other block-level elements.

 - Macro expansion, internally, operates on lists, where an expansion
   returns a list of there were things which could not be incorporated
   at the lower-level due to block issues.

 - In order to cope with macros in inline scopes expanding into
   paragraphs, and so being promoted, a notion of when nodes can merge
   with each other safely was introduced. Currently only paragraphs can
   merge.
Handle malformed (empty) table cells.
Make check for error message case insensitive
Merge branch 'fix-webtests' of https://github.com/Barrucadu/reviki into Barrucadu-fix-webtests
Merge branch 'Barrucadu-fix-webtests'