Eliminate double loads by using NO_RELOAD

MSP-9228

ActiveSupport::Dependencies supports using either `load` (default) or
`require` (when ENV['NO_RELOAD'] is set) to require_dependencies.  Since
metasploit-framework has no mechanism to use the reloading mechanisms
that rails would use for request, metasploit-framework can just use
require instead of load.  require won't reload an already loaded file,
so switching to require will eliminate the already defined constant
errors and the dual log messages for class loading which was caused by
Metapsloit::Framework.setup being called the first require
'metasploit/framework' and then again for the
require_dependency('metasploit/framework') when it was using load.
Don't encode payloads when BadChars is nil OR empty

MSP-9228

Payloads were being unnecessarily encoded because
Msf::EncodedPayload#encode was only checking if reqs['BadChars'] was not
nil, but some exploits, such as multi/ssh/exec, set BadChars to empty
string instead of nil, so use present? to check reqs['BadChars'] instead
of just it's value (which would check for nil/false).
Fix deprecation warnings

MSP-9228
Fix order of stager, stager handler, and stage in payload classes

MSP-9228

I had the order of the includes in reverse from the order on master.
Thanks to Juan Vazquez for figuring out that the order was the root
cause.