(refactor) Deduplicate operatingsystem fact resolution

The operatingsystem fact on Linux had all possible fact resolutions
expressed in a single location. This makes testing and reasoning about
the fact somewhat frail, as it implies ordering that might or might not
be there.

This commit extracts common behavior of detecting redhat and suse
variants based on file contents, and behavior around detecting the
operating system based on the presence of a file.