lexer.lua: fix parsing block comments/string. fix hang on empty string.

This pull request fixes lexer.scan hanging when the input is an empty string.
It also fixes the parser failing on block comments and strings when the block includes '=' between the brackets, like
--[===[
 block comment
]===]

[=[ a
block
string
]=]