refactor: centralise parser state in a table.

* lib/zile/syntax.lua (state.new): New function. Return a new
parser state...
(syntax_attrs): ...refactored from here.
(highlight): Change to accept a single state table parameter.
(parse): Likewise, but save long derefrence chains into locals
for better access speed.

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