Finish activity prior to firing the statusChanged event

The statusChanged() event is wired to TransferEnginePrivate::exitSafely() which would otherwise think that something is still going on and wouldn't exit, so transfer engine would keep on running forever. Which is what it currently does.

Also, previously scheduled delayedExitSafely() call should be cancelled if activity is ongoing to prevent premature exits.