Refactored coroutine behavior for AvalonDock closing event, abstracted AvalonDock cancel event args so that Coroutine part can be handled more like its supposed to work. This enables the code to send a CancelResult anywhere in the chain and the document close will be canceled. This enables cancel a document close, not just from the dirty dialog but from the save dialog itself