Allow bash commands with arguments to be passed as arguments to fswatch

I find it annoying I have to pass the bash command as a single string argument to fswatch. I'd like to be able to write
```sh
$ fswatch . ant test
```
instead of 
```sh
$ fswatch . "ant test"
```

This change allows this by building a single, space-separated argument to `bash -c`. I've also made sure the arguments building is only run once per call to `fswatch` rather than for every filesystem change in the directory specified.

I hope you agree this makes fswatch a little friendlier.