This attempts to organize all needed items and places appropriate defines
in a single location. Redundant comparisons/defines were removed when noticed.
A few caveats, however:
* This may be better targeted towards the 5_1_0 branch instead of master right now.
* Cmake will run a little slower on configuration/generation now. That's due to the sanity checks it runs.
* There are some more checks to be added later, but this should be a solid start.
Thanks to the [libical](https://github.com/libical/libical) project for inspiration.
sync_volume_np was introduced in the 10.8 SDK. This commit ensures that
some related constants are defined before calling the function. If they
are not, we fallback to the older logic.
Previously you had to use /dev/sdx or /dev/sdx1 for the device in /etc/fstab,
but the order in which these are assigned is non-deterministic on modern
kernels. Now, if you want a specific card, you can use /dev/disk/by-uuid,
or if you want a specific port, you can use /dev/disk/by-path.
General guide: if the parameter name and its typings
match almost exactly, the name goes away.
Otherwise, it's commented out to allow for some
documentation.