Use only characters valid for go identifiers
Keep backslash in string if not followed by ' or "
Remove unused TOKEN_CHARACTER
Return correct token for semicolon

Semicolons aren't mandatory but can be used and separate multiple
statements on a single line.
Stricter parsing of identifiers

Detect that first character isn't digit, introduce TOKEN_OTHER for tokens
not relevant for simple ctags Go parsing and use it where needed.
Parse single line var or const definitions correctly

The skipToTopLevelSemicolon() would end only after finding ";". However
there could be the ending ")" before which would be skipped in this case.
Make sure ")" correctly ends the var, const definition block.

Also add clarification comment about skipping multiple return values
of a function in skipType().
Skip matching braces at top level

Make sure the parser skips the contents between matching braces at top
level; otherwise something from unparsed blocks (e.g. import) could be
treated as a keyword and confuse the parser.
Don't generate tag on invalid input for var, const, type
Add the go-torture unit test