msfcli is designed to load only one module (auxiliary or exploit),
so we shouldn't have to load all of them to run this utility. The
overall goal of this PR is to narrow down what modules
(exploit/aux + payload + encoder + nop) you possibly need in order
to shave off loading time. By doing this, on my box this is 5-6
seconds faster than the original one.

I actually tried to avoid making too many changes in the library
(such as Module Manager), because we don't have test cases for them,
and we can't really afford to risk breaking it. I also developed
a test script to actually be able to test msfcli.
Missing end statement
Change name, change how data is passed, fix rspec
Do if [].empty?. Avoid msfcli running as a job
Update archive.rb to handle whitelist
Add comment about opts
Update documentation
Update documentation
Refactor msfcli
Refactor msfcli, delete the bash test script, add rspec for msfcli
Change path for msfcli rspec, and use spec_helper
Move get_stdout inside 'describe Msfcli' statement
Ensure consistent module naming style
refname doesn't show module type, so use arg
Use full path to check module class instead
Init all payloads if not set when module is an exploit
Make sure we don't end up loading aux and exploits together
Forget about it
Missed this var
Show some examples