Device support: Make sure a DeviceProcess always "finishes".

We cannot technically enforce a remote process to actually terminate,
but we don't want the associated DeviceProcess to "hang" forever.
Therefore, we now
    a) check whether the kill operation reports an error and
    b) start a timer after starting the kill operation.
If the kill operation either "officially" fails or does not have the
desired effect of actually terminating the process within a given time
frame, we set the DeviceProcess to "finished" manually. This is the same
thing that already happens when the connection gets lost, where we also
report the DeviceProcess as finished, even though the remote process
might still be running.

Change-Id: I5620f90453463c64d3a84abd30f1ec7eec9d492d
Reviewed-by: David Schulz <david.schulz@digia.com>