Interactive commands
This merge request cleans the various interactive commands implemented.
It centralizes the common code in a base class.
It also cleans the fact that some of the commands had the interactive option backward meaning that the user would have to "enable" interactivity rather than the usual "--noinput" route.
As drive by commits, some minor cleanups have been applied to the code.
Part of #563