matcher: integrate the new parser (only visits CommandNodes for now)
parser: improve error handling
matcher: handle unparsed portions by the parser
matcher: add matchgroup to group each command matchresults
matcher: implement _mergeadjacent using groupby
matcher: delete _mergeunknowns, it is basically a subproblem of _mergeadjacent
matcher: save the relevant manpage on the matchgroup
matcher: no need to keep all found manpages in the class, the group contains it
options: delete tokenize (superseded by the parser), move tests to test-parser
matcher: return all groups (views only look at the first)
fix various pyflakes warnings
algo/features: delete unused code
matcher: don't fail matching when a manpage isn't found
matcher: visit pipe nodes

We add a matchresult for each pipe and take the help text
from hand picked strings taken from bash(1).
matcher: visit operator nodes
matcher: visit redirection nodes
matcher: visit compound nodes
test-matcher: add a test for nested subshells
web/explain: pass all of the matcher's matchgroups to the explain template

The idea is to send each group to the template, and let the user navigate
between groups with a prev/next button. Each time, a certain group will be
displayed, with the 'shell' group being the first. So when the page loads,
the user is going to see explanations of shell syntax, and clicking the next
button will move to the first group of command explanations.

Suppose we have the command 'a | b', then first we're going to see what '|'
means, then clicking next will show what 'a' means, and another click will show
what 'b' means.

We might want to show everything in case there are <5 (or something like that)
lines.
web/es.js: move some logic from explain.html to es.js