Properly handle subdirectories in Watcher
Add sleep argument to MakeStatic.watch
Make sure file_ signals are always triggered

If a directory and files are added to the watched directories,
previously it was possible that if both were added in a small enough
time frame the new files would not trigger the file_added signal. This
change fixes this issue.
Be more efficient about compiling changed files

Instead of compiling all files, we only attempt to compile the files
that have actually changed now.