Refactor tokenizing part of the parser
Refactor tokenizing part of the parser

This change caused a small regression in performance. Hopefully it
could be optimized later.

benchmark                        old ns/op     new ns/op     delta
BenchmarkParsingSimpleLine-4     1000          1097          +9.70%

benchmark                        old allocs     new allocs     delta
BenchmarkParsingSimpleLine-4     11             11             +0.00%

benchmark                        old bytes     new bytes     delta
BenchmarkParsingSimpleLine-4     384           400           +4.17%

mibk/shellexec