Fix compatibility issues with listen 2.7.12

- Fixes https://github.com/guard/listen/issues/275
- reworked how different versions of Listen are handled
Please document these functions.