Support for replacing CRs through plugins

A commit's been merged to develop (#12746) that allows plugins to
override an existing compute resource shipped in Foreman with the same
name. If anybody is interested in maintaining any of the seven builtin
compute resources as a plugin, you may want to try this out, as it
should provide an easy migration path for extraction.

Extracting a provider to a plugin will allow you to release features and
bug fixes more quickly and asynchronously to Foreman's schedule. The
independent fog-* gems are being developed at a good rate, and this
should help.

I added some documentation to
about creating compute resource plugins, but also look at others -
foreman_digitalocean, xen, docker, etc.

Plugins should probably consider adding a DB migration to change the
compute_resources 'type' column from Foreman::Model::X to their own
model. Once a plugin's stable and released, the provider can be removed
from Foreman core.

Any providers that don't get extracted to plugins can continue to be
maintained in Foreman, I'm not trying to advocate their removal.


ยทยทยท -- Dominic Cleal