Address comments from https://github.com/iovisor/bcc/pull/936
- Remove dependency on networkx. I did this by copying only the parts I needed
from networkx, and adapting it to only use what I needed. These include:
`DiGraph`, `strongly_connected_components`, `simple_cyles`
- Symbolize global and static mutexes. In order to do this, I subshell out to
`subshell`. This isn't very efficient, but this only happens at the end of
the program if a deadlock is found, so it's not too bad.
- `--verbose` mode to print graph statistics
- Make `--binary` flag optional. Not needed by default, However, this is needed
on kernels without this recent kernel patch
(https://lkml.org/lkml/2017/1/13/585, submitted 2 weeks ago): we can't attach
a uprobe on a binary that has `:` in the path name. Instead, we can create a
symlink without `:` in the path and pass that to the `--binary` argument
instead.