fix #3

Now, the generation happens this way:
* When a change on disk is detected, a regeneration is queued for 5 seconds in the future
* When a new change is detected, the previous build is cancelled and a new one is queued up