renamed `layout` -> `used` for Text* classes

- namespace contention for `layout` is about to heat up
unnecessary heft
renamed layout mgr
moved string-attribution from Stylesheet to Text

- added `indent`, `margin`, and `spacing`
new Layout accessor class

- it’s immutable but exposes the layout params through its attrs
- provides with-statement support for the layout() command
validation update
divided args between font() and layout()

- the font() command had become a maelstrom of args, so now they’ve
been split between two type-styling commands based on whether an option
applies on a character-by-character or paragraph-by-paragraph basis
- the font() command now handles `character style’ args
- the layout() command gets the `paragraph style’ args
- text() and Text.append() can still handle the union of the font and
layout args for overrides
updated syntax highlighting
simplified Layout state
repr cleanup
added docstrings for font() and layout()
minor docstring updates
made size and leading more divzero-resilient
improved xml parse-error reporting
new behavior for <self-closed/> tags

- if an empty tag is the very last ‘character’ on a line, it will be
extended to contain the \n that follows it (so “<a/>\n…” is equivalent
to “<a>\n</a>…”)
- this ends up being useful if you want to style an otherwise ‘blank’
line (e.g., by setting its leading/spacing for an arbitrary
vertical-skip)