syntax: support begin and end expressions on a single line.

* lib/zile/bundle.lua (capturestoattr): Call scopetoattr for each
element of captures.
(load_grammar): Factor out pattern compilation from here...
(compile_patterns): New function.  ...to here.
(compile_rex): Precompile onig regular expressions.
* lib/zile/syntax.lua (leftmost_match): Account for matching
against expressions in .rex and .finish.
(parse): keep a pattern stack so that we can push a new pattern
list onto the stack for matching subexpressions, and then pop
back to the original when the finish expression is matched.
Similarly, save the active color to a color stack when a new
pattern list is pushed, and use that to color the whole begin/
end pair when the finish expression is matched.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>