Module #initialize specs

MSP-11145

Spec that all modules can be initialized.  For payloads modules, check that the a module can be initialized when it's single module or it's stage and stager are loaded.  Detects when a payload module is not being tested and fails `rake spec` with exit(1) if a file is not tested, but cannot detect if a payload test is missing if its ancestors are used at least once.

# Verifications

## specs
- [ ] `rake spec`
- [ ] VERIFY no failures

## Failure testing
- [ ] `git checkout 216360d`
- [ ] `SPEC=spec/modules/payloads_spec.rb" rake spec`
- [ ] `echo $?`
- [ ] VERIFY exit status is 1
- [ ] VERIFY contexts to add to were printed.
- [ ] Restore to HEAD `git checkout -`

## Tags

### Local
- [ ] `SPEC_OPTS="--tag content" rake spec`
- [ ] VERIFY only `spec/modules_spec.rb` and `spec/modules/payload_spec.rb` are run.
- [ ] `SPEC_OPTS="--tag ~content" rake spec`
- [ ] VERIFY everything except `spec/modules_spec.rb` and `spec/modules/payload_spec.rb` are run.

### Travis-CI
- [ ] VERIFY the `RAKE_TASK=spec SPEC_OPTS="--tag content"` job ran
- [ ] VERIFY the `RAKE_TASK=spec SPEC_OPTS="--tag ~content"` job ran
This explanation was added in response to https://github.com/rapid7/metasploit-framework/pull/4055#discussion_r19415672