Fixed watchdir option

I think current watchdir option doesn't work as it should (please correct me if I'm missing something).

My recent project was consisted of many different modules each of them having it's own tests suite.
I've tried to use watchdir option but it didn't work as I expected.

I've created sample project and described steps to reproduce the issue and fix for the issue with my forks (https://github.com/lesniakania/guard and https://github.com/lesniakania/guard-rspec):

https://github.com/lesniakania/multiple-modules-with-guard

These changes depends on changes I've made in guard repo.
@lesniakania  - Thanks, got it - `tmp_file` is used before chdir (when collecting results from previous run), while TEMPORARY_FILE_PATH is used after chdir by the formatter.

@907th - after re-reading #247, I believe the core issue (which wasn't mentioned) is that if the specs used chdir, the current directory should have been restored before the specs finished. Overall, changing the current working directory should be avoided in apps, and if it really is used, the path should be restored (e.g. by using `Dir.chdir` with a block or using an `ensure` block). So if this breaks #247, that issue would have to be revisited for the real cause.