Bug fix. Handle an abort via ^C as error, to distinguish it from a regular return.
Without this change the ^C will appear higher up as the empty string, indistinguishable from when such is entered by the user.
Implemented a command loop convenience command.
TODO: configurable completion callback.