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
At [first](https://github.com/zidoms/lime/blob/fc9dce4383dfdf790e3d41ac1dbc8d08ba74f240/backend/watch/watch.go) I was going to use `func()` as an action but then I saw we are using same Reload function every where then i changed it to Reload and wrapped it into Watched interface.
I will change it to `*func()` or sth like that.