Fixes crash caused by race condition

- Calculating size synchronously when initializing a copy operation. The calculateSize method marks the operation as finished if an error occurs while fetching attributes for the soure file(s). We need to check that the operation has not been marked as finished as soon as it is initialized.  However, when the size calculation is done asynchronously it will always finish after we check this state and possibly before it is added to a queue, resulting in an exception in NSOperationQueue from adding a finished operation to a queue.