Expand environmental variables properly

Previously, environmental were expanded only if they occurred as an
individual token, delimited by whitespace. This change make it so that
an environmental variable found anywhere in a sentence will be expanded,
which is in line with correct behavior.
Expand completions

This is useful for making it obvious to the developer how a command is
being interpreted as well as getting it to play nicely with Completer
machinery.