fixes #7066 - add back $login interpolation for LDAP service account usernames

In cases where an LDAP connection is required outside of the context of user
authentication (e.g. validation of external user group name), an error is
thrown.  Users are recommended to use dedicated service accounts for this
new feature.
refs #7066 - fix syntax error in expression
fixes #7121 - move smart proxy action buttons to helper
Fixes #3809 - Add rubocop to check Ruby code
fixes #7035 - expand column name for Rails 3.2.8 compat in Puppet class search
Fixes #6161 - Mark override on adding smart variable override via api
fixes #7317 - skip rubocop rake tasks if library isn't installed
Fixes #5929 - Taxonomy filter obey permissions

With this patch you can assign permissions like assign_organizations and
assign_locations to particular user so that they can then assign
taxonomies
only from set of taxonomies granted by their filters.

Global users would be still able to assign any taxonomy to a resource as
long as they have appropriate assign permissions. They can also leave
the resource global.
Fixes #7157 - Combo box style in reports
Fixes #6538 - User group vs usergroup name consistency
fixes #7218 - authorize hosts welcome page
fixes #7191 - move API response logger to named filter so it can be skipped
Fixes #7079: foreman-debug archive now includes contents of /etc/foreman-proxy/settings.d directory
Fixes #7261 - API v2 - mark wrapped params hash for POST/PUT as required instead of optional
Fixes #5926 - hide sensitive parameter values

User can check to hide value when creating or editing global parameter.
The value is masked by *** and is also not displayed when overriding.
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.