Import datastore options when using an encoder

If you can't pass datastore options, sometimes you can't even
use an encoder.  [FixRM #7681]
Merge branch 'master' of https://github.com/rapid7/metasploit-framework
BufferRegister should be validated.

If BufferRegister is in lower-case, then gen_decoder_prefix will
return nil.  When the return value is nil, other functions like
gen_decoder() will backtrace due to a "undefined method "+" for nil"
error.  Therefore, this input should NOT be case-sensitive.

Also, if for some reason the user supplies an invalid BufferRegister,
the function should be aware of that and warn the user about the
bad input.
Cosmetic fixes

[FixRM #7223][See #1283]
Merge branch 'master' of github.com:rapid7/metasploit-framework into rapid7
Merge remote-tracking branch 'kernelsmith/RM7676-migrate-h' into rapid7
Some whitespace and ruby -c fixes
Merge remote-tracking branch 'wchen-r7/encoder_fixes' into rapid7
Remove cred_files migration

[#41837027]

Mdm::CredFile is only used in Pro, so for metasploit_data_models 0.4.0,
Mdm::CredFiles has been moved to Pro, so the migration has been moved to
Pro too.
cve and references available
module also updated with refs
CVE update
Pass the X-HTTP-Method-Override parameter for compat
[FixRM #7673] "Failed to reload" error.

When db_disconnect is issued, this funtion does not update the status
of self.migrated to false.  So when another reload command is used,
the update_module_details function will still try to connect to the
database, which causes the "Failed to reload" error.
Merge branch 'java_0day_refs' of github.com:jvazquez-r7/metasploit-framework into jvazquez-r7-java_0day_refs

Conflicts:
	modules/exploits/multi/browser/java_jre17_jmxbean.rb
Adds one more ref
Merge branch 'master' of github.com:stephenfewer/metasploit-framework into stephenfewer-master
Fix OptInt's valid?() function

[FixRM #7539] - The valid?() function will first normalize() the
user-supplied input before validation.  The problem is that the
normalize() function will ALWAYS convert data to integer, therefore
whatever you validate, you will always get true.  For example:
when I do "yomama".to_i, that returns 0, and of course will pass
integer validation.
Move impersonate_ssl

To 'gather', because it grabs stuff, not scans.
Merge remote-tracking branch 'wchen-r7/optint_valid' into rapid7