Fix the URI parsing
Go back to setuptools for the various things not supported in distutils
Refactor IO to work off a select.select IOLoop for lower CPU usage and better performance

- Use a socketpair for triggering the IOLoop, waiting it on a blocking select.select
- Fix channel closing to work better
- Still has an issue with SIGINT