Remove duplicate code.
Generic 'scoped_no_eols' implementation.

So that it can be reused for other state variables.
Use a value in local for simple_markup's mark.

Feels a little better to me. Although it isn't as stronly associated with the
rule.
Use a value in `local` for `still_in_block`.

Allows `paragraph_item` and `list_item` to be merged into a single rule.
Use a value in `local` for `context`.
Rename a few grammar wide variables.

Partly for clarity, and partly because there are too many things called
'block' and 'phrase'. The grammar names aren't great, but at least they
match. Might rething once I've done a lot of the 1.7 things.
Rename some local variables.

Just to reduce confusion between the paragraph rule and the paragraph
action. Should possibly do this for all such local variables. I'll see
how it goes.
Allow block markup inside nested blocks (e.g. tables)

Since this is often indented, does not treat indented blocks as code
blocks. This is inconsistent for lists, so maybe indented blocks in
lists should always be code, or never be code. Or maybe it should be a
bit smarter about nested indented blocks.
Better element handling in paragraph_item.

Now all elements are handled within local.common.
Error if element used in incorrect context.

Should be less suprising than just not processing them. Needs more tests.
Error if phrase element body doesn't parse.
Allow block markup in phrase templates.