Only lex addresses when necessary
Only lex addresses when necessary

Only lex addresses when opts.address is set. As addresses and numbers
can never be used in the same place, code detecting number/address
ambiguities and code tracking whether lexer is inside brackets
can be dropped.

Other parts of parser generally don't check if token from lexer
is a table, resulting in crashes or strange error messages
(e.g. 'bad token table: 0xabcdef'). With this change these parts can't
get tables as tokens, only numbers or strings.

Also, invalidate peeked token if options changed

If caller of lexer.peek() decides to not consume token and then another
function calls lexer.next({maybe_arithmetic=true}), it will get cached
token produced without arithmetic considerations.

Fixes incorrect parsing of '(len-4>10)'.

SnabbCo/pflua,mpeterv/pflua