Fail before suite if more than 1 thread exists

MSP-11147

Detect thread leaks in a `before(:suite)` configured by
`Metasploit::Framework::Spec::Threads::Suite.configure!` and fail if any
leaks are found.
Log caller for each Thread.new for `rake spec`

MSP-11147
Merge branch 'feature/MSP-11130/metasploit-framework-spec-constants' into feature/MSP-11147/thread-leak-detection

MSP-11147

Merge to get framework instance cleanup, which should clean up a lot of
thread leaks too.

Conflicts:
	Rakefile
	lib/metasploit/framework/spec.rb
	spec/spec_helper.rb
Remove prior log/metasploit/framework/spec/threads/suite.log

MSP-11147
Check that threads/suite.log exists before reading

MSP-11147

Even with leaked threads, there may be no log if the suite is run
without `rake spec`, such as when `rspec` is used directly to run a
subset of specs.
Tell use to run with `rake spec` to see Thread.new caller

MSP-11147

If the log isn't available, tell the user to rerun with `rake spec`
instead of printing nothing after the `:\n`, which looks incomplete.
Fix multiline string indentation

MSP-11147
Remove empty define_task

MSP-11147
Give Threads UUIDs for spec run so caller can be correlated

Have 'metasploit/framework/spec/threads/suite/logger' generate a UUID
for each Thread.  This UUID is printed on the "BEGIN Thread.new caller"
line and is assigned as a thread-local variable,
'metasploit/framework/spec/threads/logger/uuid'.  In `after(:suite)`,
the log can be parsed to map the caller back to each UUID and then only
the UUID of the still existing threads is used to look up the caller and
print their stacktraces.  This means only leaked threads callers will be
printed.
Extract 'Msf::Framework#threads cleaner'

MSP-11147

Extract from 'Msf::Simple::Framework' the `after(:each)` that kills and joins
threads from `framework.threads` into 'Msf::Framework#threads cleaner`.
Fix thread leaks in TaskManager spec

MSP-11147
Extract Msfcli#framework

MSP-11147

Expose Msfcli @framework as Msfcli#framework so that it can be set in
tests.  It also allows Msfcli#framework to lazily initialize and memoize
to @framework.
Remove incorrect 'Class methods' context

MSP-11147
Update Msfcli#initialize spec style

MSP-11147
Update Msfcli#usage spec style

MSP-11147
Fix context prefix

MSP-11147

Instance methods should be prefixed with `#`, not `.`.
Remove redundant 'it' in text name

MSP-11147
Update Msfclie#dump_module_list spec style

MSP-11147
Update Msfcli#usage spec style

MSP-11147
Update Msfcli#guess_payload_name spec style

MSP-11147