Refactor the representation of ArchiveJob object throughout the code
We have several 'ArchiveJob' (and similarly 'RetrieveJob' or other) objects in several namespaces called the same way which is confusing. Moving data from one object to another sometimes through even several dynamic casts in order to achieve a very little (like extracting one/few data member value/s) at the end seems like something I wish to review.