Only use one inotifywait instance, fix quoting

As detailed in #14, this improves usage of inotifywait: instead of calling inw
once per loop-run, it is launched once and its output piped into this script.
To facilitate this in an economic manner, a sleep period after a captured event
is added (it acts exactly as it did before this change). Should new events
occur while a waiting period is already running, that sleep process is killed
and a new one started. This groups together rapid events. The -s switch keeps
its functionality.

As mentioned in the issue, a big credit goes out to @datag, since the idea and
structure for this feature are taken from
datag/confcan@bcff79bc775aa8ed402c73f65ffe6daa29e97010.

Also fixes quoting (and quote-parsing) issues in a few places. These became
apparent in the inotifywait call (which is prepared as a string, from which
quotes arguments are not processed like normal unless `eval` is used). Testing
revealed a few quoting weaknesses in other places, where a path containing
whitespace would cause errors. Most of these should be fixed for now.

Closes #14.