Refactor dialogs to use exit codes to distinguish user cancellation
Merge HEAD