Creates and returns a new handle which can (after being set up) control one port. It is not allowed to use the same handle in multiple threads or forked processes. It is allowed to create and use multiple handles, however. Use one handle per thread which needs it in the multithreaded case.