Factor Out the Internal Class

Moves the `Watcher` class into it's own file and renames it to `Snooper`.
Update Gemspec to add Dependencies

We depend on `listen`, `terminfo` and `colored`.