Fixes #3860 - automated discovery provisioning

Replaces https://github.com/theforeman/foreman_discovery/pull/97
> Does it really make sense to have this in lib? We've been moving code out of lib in foreman-core. Perhaps it should be in the DiscoveryRule model?

Yeah, actually I have a small refactoring locally that adds a Concern
for this. This way I can also use safe_mode which is only available in a
model classes.

Let me push on Friday.

-- 
Later,
 Lukas #lzap Zapletal