fix invalid overload test

I don't know how this ever worked, but it certainly didn't test what I
thought it did: setting path to an object that could be stringified.
make sure test tempdirs are automatically cleaned

While doing this I found a fun thing: FSEvents always show the real
path, after resolving any symlinks. The Cwd::abs_path function has to be
used to find the real path. Doc patch forthcoming...

I reduced some of the timeouts to make the tests a bit faster, but not
nearly enough. I also had to add another sleep because the event queue
sometimes goes slightly back in time.

I rearranged t/06flags.t to make it easier to ensure the right tempdir
is being kept around for the appropriate tests. The end result was fewer
lines of code and a more linear flow.
consolidate and reorder tests

When we moved tests into xt/ it left a hole in the numbers. I also
combined two test files and deleted one that is simply skipped (it's
always in the git history if we need it again).
remove dependency on File::Slurp

We were only using it in a test, and there's a way to force FSEvents
using just File::Temp.
explicitly define all dependencies

And remove one that we don't need anymore
add docs about the flags available

A short blurb about the flags so users know what they do. The Apple docs
are a bit hard to navigate when the API presented by this module is so
different.

Fixes #100941
move flags into constructor arguments

In addition to allowing a bitfield of flags, now we allow constructor
args with the flag names. This way, users don't need to import the flag
constants into their package, and they don't have to know how to
construct a bitfield.

Fixes #100940