refs #3809 - Fix "`ruby_20` is not a valid platform"

:ruby_20 is unknown platform for older bundler versions
fixes #4111 - Add image user data flag to API
fixes #7054 - list all routes for each resource in /v2/api
Fixes #7286: Can not create a compute resource without selecting a provider
Fixes #6444 - add support for virtual NICs

Extend additional interface details refs #2240

NIC facts parsing change and we create interfaces in Foreman according
to facts we recieve.

Subclasses does not define their own attributes and serialize them to
attrs hash. All BMC attributes are extracted to separate columns so it's
possible to search NICs by those attributes. Attrs can still be used for
custom attributes (e.g. coming from facts).

NIC form was ajaxified which means that we redraw the form for
particular interface class. We can easily define custom forms for
various interfaces types.

Added support for virtual and physical interfaces. Initial support for bridges
(to keep tests green). New attributes can be set via UI as well.

IPMI facts parsing and BMC NIC creation based on custom facts that are
present in discovery image.

NIC orchestration is now optional and can be set for every interface.
All created interfaces based on facts (BMC or Managed) are not
managed.

Store and update primary interface identifier in host.

Allow subnet selection without domain for NIC so we can use DHCP only.

Suggest IP addresses even without proxy by Foreman itself. Foreman finds
first free IP on a particular Subnet based on records in database.