nanomq backend support.
- Abstracted zmq stuff into compat module.
- All code that was using zmq now uses compat.MQ
- Added tox test config
- Still having issues with utils.is_open reporting the port is closed, when it should not be.
- Fixed small test bug where port counter wasn't incrementing and could lead to flaky test.
- Added more logging to server.
- Made nanomq preferred. May switch if this gets popular.
- Updated ServerProc docstring.
Added backend .closes_reliably() method (which link to github issue), and use it in tests.