Replace Host::Base#model_name to prevent Rails 4.2 conflict
Rails 4.2 implements #model_name in ActiveRecord::Base as an instance method rather than a class method (in 4.1 and older), changed in https://github.com/rails/rails/commit/6b0e834.
Our HasManyCommon concern adds a model_name method to Host::Base as an extension of the model/model_id association to the Model er, model. This will need to be removed to ensure the AR method continues to work.
When our model is in place, links to hosts can't be generated in Rails 4.2 as they return nil or string values from our implementation Host::Base#model_name rather than the ActiveModel::Name object expected.
fixes #13440 - rename Host#model_name to #hardware_model_name
Rails 4.2 defines a model_name instance method which is used in routing
and called from link_to. Rename our model_name methods to
hardware_model_name to prevent this overlapping and causing link_to
Host#hardware_model_name is provided as an equivalent getter to replace
it, and the #model_name= getter/setters are provided but are deprecated.
The deprecation period has been brought forward one release from the
usual, so as not to block an upgrade to Rails 4.2.