Add OS detection

where
    detectOS is being strict as -> Maybe OS

    detectOSFallback is -> OS which falls back to Fedora and prints
        a warning message to stderr if the detection fails and fallback
        is performed

    new command detect-os is provided for inspection