matcher: use a namedtuple to describe expansions
es.js: lots of linting fixes, thanks jshint!
manpage: don't change the environment directly
matcher: run bashlex in non strictmode

so things like missing heredocs don't raise an error
matcher, es.js: explain shell expansions such as ~, $@ (fixes #55)

These are displayed differently in the UI. Instead of using the usual help box
with a line connected to it, we display a popover when hovering over an
expansion. Also, color them in red and write something at the top of the page
so people notice.

The reason we don't reuse the existing logic for displaying them is that right
now the UI isn't really suited for nested explanations, so in the following
command:

$ echo "a $1"

the word "a $1" is an argument of echo and has its own help box, but if we
wanted to give $1 one too it would somehow have to overlap the outer one. It's
doable but too complicated, and I'm quite happy with this alternative.
views: add nbsp instead of spaces inside words

for some reason this messes things up if two popovers are adjacent, e.g.

echo "$1 $2"

and trying to hover $1