Break some extensively long lines
Engine now calls wait on output for further data, is interrupted on new data.
Introduce an "Engine" class to abstract some of the details of loading modules, registering events, etc.