New per command line listener (#9)

This implements a Shell.OnCommandLineListener as described in #9.