lex.go: Properly close channel lexer.items channel

Oooops! Forgot to close the lexer.items channel at the end of input. This fix
comes with a handy test.
Refactor TestTreeNext()

Uses reflection to which condenses the function lines and make is easier to
have a more robust test.
Make TestTreeBackup() more readable
parse_test.go: Fix spelling errors
Add more TestTreeNext() tests