Fix compatibility issues with listen 2.7.12

- Fixes https://github.com/guard/listen/issues/275
- reworked how different versions of Listen are handled
I'm pretty sure you can just write `_listen_module::Listener` here.