Adds --watch functionality

As stated on #7, a `--watch` functionality would be cool (at least i like a bunch having that while developing).

Tried to preserve the current code structure but some things had to be changed. Hope this PR does not mess up with it  :grimacing:. I actually don't know if this is ok for every use case, it seems to be working pretty well here.  

*sorry for my not-so-good english!*