Distinguish between "regular" hosts and hosts on which Foreman and/or smart proxy runs - models and fact processing
Fixes #32328 - Infrastructure roles
Introduces things needed to assign infrastructure roles to hosts.
A host can now have an infrastructure facet, which can be used to mark a
host as foreman instance by setting a flag on the facet. The facet can
also be used to establish a relationship between the host and a smart
This model allows us to know which hosts form a foreman instance and
which form a specific proxy. This can be leveraged to require different
set of permissions when performing actions against such hosts.
Roles can be modified using newly introduced APIs and queried using the
APIs or scoped search queries on hosts.