Thread leak-detection and clean up

MSP-11147

When `rake spec` is run, `Thread.new` calls with their `caller` are logged to `log/metasploit/framework/spec/threads/suite.log`.  If there is more than one thread in `before(:suite)` then rspec will fail and print the log so the leaked threads can be tracked down.  If there is more than one thread in `after(:suite)` then rspec will fail and print only the `caller` for the currently existing Threads so that the already cleaned up threads' `caller` does not need to be shown.

# Verification Steps

## Leaks are detected
- [x] `git checkout 22cbc5c`
- [x] `SPEC=spec/lib/msf/core/framework_spec.rb rake spec`
- [x] `echo $?`
- [x] VERIFY exit with `1`
- [x] VERIFY `caller` for leaked threads are printed to stdout.

## specs
- [ ] `git checkout 69043d5`
- [ ] `rake spec`
- [ ] `echo $?`
- [ ] VERIFY no failures
- [ ] VERIFY exit with `0`