New watch package, better and cleaner watchers for lime packages

- Moved watch to a separate package resolves #292 
- Enabled watching directories, we will have less individual watchers
- It's possible now to have multiple subscribers on one file or directory resolves #285
- Enabled watching a file which doesn't exist yet
What if the action one would like to take isn't a "Reload"?

How would one for instance know specifically that a file was renamed? Surely a full reload of a file just because it changed name isn't appropriate?