Rewrite of instruments termination code + tests

Expands on PR: https://github.com/calabash/run_loop/pull/41

Users were reporting:

```
'No such process (Errno::ESRCH)' randomly occurring
```

and I discovered some bizarre edge cases.  I decide to go back and rewrite the RunLoop::Instruments class from scratch.

* Fixes "Isolating the ScriptAgent no access to UniqueDeviceID bug" #34
* Partial fix for "Errno::EINTR: Interrupted system call @ rb_sysopen" #35