Implement failTransfer, failReport methods and draw state change diagram of the workflow

stateDiagram-v2
    direction TB
    classDef whitesystem fill:white
    classDef needsreview fill:#ff8c1a
    classDef allok fill:#66b3ff
    classDef almostimplemented fill:yellow
    OStoreDB:::allok --> ArchiveJob:::allok
    ArchiveJob --> failTransfer()
    failTransfer() --> m_archiveRequest
    m_archiveRequest --> addTransferFailure()
    state addTransferFailure() {
        updates_fail_stats
        if_last_trial_returns_next_step_flag
        requeues_otherwise_by_status_change_same_mount_or_not  

    }
    addTransferFailure() --> EnqueueingNextStep
    EnqueueingNextStep --> Nothing 
    EnqueueingNextStep --> Delete 
    EnqueueingNextStep --> EnqueueForReportForUser 
    EnqueueingNextStep --> EnqueueForReportForRepack 
    EnqueueingNextStep --> EnqueueForTransferForUser
    EnqueueingNextStep --> EnqueueForTransferForRepack
    EnqueueingNextStep --> StoreInFailedJobsContainer
    Nothing --> m_archiveRequest.commit()
    Delete --> m_archiveRequest.remove()
    EnqueueForReportForUser --> state_change_to:ArchiveQueueToReportForUser
    EnqueueForReportForRepack --> state_change_to:ArchiveQueueToReportToRepackForFailure
    EnqueueForTransferForUser --> state_change_to:ArchiveQueueToTransferForUser
    EnqueueForTransferForRepack --> state_change_to:ArchiveQueueToTransferForRepack
    StoreInFailedJobsContainer --> store_in_failed_queue_container
Edited by Jaroslav Guenther