Metasploit::Model::Module::Instance associations

[#56005352]

The 'Metasploit::Model::Module::Instance' shared example now tests that
module_instance factories have the correct associations, based on the
module class module type.  The metasploit_model_module_instance trait
cannot construct the associations since they are dependent on the
factory namespace, but *_length ignored attributes are provided to
generate a reasonable number of the associated items.  The
dummy_module_instance factory should be used as a guide for a conforming
factory.

In addition to the association changes, all mixins now have an
i18n_scope of 'metasploit.model', which is also used for the search
operators, so search_i18n_scope has been removed.  lookup_ancestors is
also overridden to use the ancestor lookup from ActiveModel instead of
the superclass lookup from ActiveRecord so that the Metasploit::Model
mixins can have their model_name be used in the i18n lookup which allows
Metasploit::Framework and Mdm models that use the mixins to use the same
translations, which was not the case when their i18n_scopes were
'activemodel' and 'activerecord', respectively.