Moved the lexer and parser instances in separate lexer/parser singletons

This allows reusing the filter lexer/parser in tag parsing without
rebuiling the lexer/parser every time.
This is a case where I'd rather the flake8 error... IMHO it's more readable as a single line