Take first binary match for PATH lookup on uprobe and USDT
Take first binary match for PATH lookup on uprobe and USDT

I was seeing unit test failures:

```
stdin:1:1-12: ERROR: uprobe target file 'sh' must refer to a unique binary but matched 5
uprobe:sh:f { 1 }
~~~~~~~~~~~
/home/dlxu/dev/bpftrace/tests/probe.cpp:33: Failure
Expected equality of these values:
  semantics.analyse()
    Which is: 1
  0
[  FAILED  ] probe.short_name (25 ms)
```

This patch modifies the logic such that if we're doing a PATH lookup, we
take the first match. Just like how the shell does it.

We also print a warning to the user.

This closes #1103.

iovisor/bpftrace,iovisor/bpftrace,iovisor/bpftrace,iovisor/bpftrace