Full Metasploit::Model::Module::Ancestor

[#50752269]

Move code that can be shared between Mdm::Module::Ancestor and
Metasploit::Framework::Module::Ancestor to
Metasploit::Model::Module::Ancestor instead of just a few constants.
Also introduce traits that will allow Mdm and Metasploit::Framework to
share the majority of their factory code except for associations and
factory naming and class.