Having stopped at $, we normally just output it and carry on. Ie, we
only stop so we can do some inspection: as before, we do this variable
tracking as inspection before processing, rather entangled with
processing.
We can deal reasonably properly with ${ } and $( ).
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>