Test optimization for cucumber:boot

MSP-11671

Optimize the time for tests so that cucumber:boot can be reenabled on travis-ci and so tests are just faster in general.

# Optimizations
1. `msfconsole --defer-module-loads` will turn off module loading and loading the module cache from the database.  This mode is only recommended for testing `msfconsole` commands that don't need modules.
2. Use `msfconsole --defer-module-loads` in cucumber features
3. Use `--execute-command` instead of running `msfconsole` interactively and typing commands.
4. Don't use simplecov in the `cucumber` process, only the child `msfconsole` processes
5. Disable simplecov on travis-ci as reports are not archived.  (Coverage remains available locally for checking test coverage unless `bundle install --without coverage` is used.)
6. Don't install development gems on travis-ci
7. Don't install gem documentation on travis-ci
8. Combine cucumber and cucumber boot into same travis-ci job to amortize setup costs

# Verification Steps

## Methodology
- [x] Review [data and notes](https://docs.google.com/spreadsheets/d/1vCRi_38Go3Wfq670eDCXMTSSXL1blSbk6NQsgpOqfYw/edit?usp=sharing)
- [x] VERIFY no errors in methods or data that make optimizations invalid.

## Travis-CI build is faster

Network latency effects need to be ignored, so only pay attention to the time of the actual rake tasks.  There is a caveat that rake spec --tag ~content contacts google.com to test SSL certs, so there are still network effects there.

### cucumber vs cucumber + cucumber:boot

#### 1.9.3
- [x] Look at time of `git diff --exit-code && bundle exec rake $RAKE_TASK` on [master](https://travis-ci.org/rapid7/metasploit-framework/jobs/43288490) (167.51s)
- [x] Loot at time of `git diff --exit-code && bundle exec rake $RAKE_TASK` on [PR](https://travis-ci.org/rapid7/metasploit-framework/jobs/43354700) (160.23s)
- [x] Verify time of running cucumber + cucumber:boot is faster than just cucumber on master.

#### 2.1
- [x] Look at time of `git diff --exit-code && bundle exec rake $RAKE_TASK` on [master](https://travis-ci.org/rapid7/metasploit-framework/jobs/43288491) (115.52s)
- [x] Look at time of git diff --exit-code && bundle exec rake $RAKE_TASK` on [PR](https://travis-ci.org/rapid7/metasploit-framework/jobs/43354701) (62.99s)
- [x] Verify time of running cucumber + cucumber:boot is faster than just cucumber on master.

### spec --tag content

#### 1.9.3
- [x] Look at time of `git diff --exit-code && bundle exec rake $RAKE_TASK` on [master](https://travis-ci.org/rapid7/metasploit-framework/jobs/43288492) (504.20s)
- [x] Loot at time of `git diff --exit-code && bundle exec rake $RAKE_TASK` on [PR](https://travis-ci.org/rapid7/metasploit-framework/jobs/43354702) (897.14s)
- [ ] Verify time of running faster on this PR.

#### 2.1
- [x] Look at time of `git diff --exit-code && bundle exec rake $RAKE_TASK` on [master](https://travis-ci.org/rapid7/metasploit-framework/jobs/43288493) (201.63s)
- [x] Look at time of git diff --exit-code && bundle exec rake $RAKE_TASK` on [PR](https://travis-ci.org/rapid7/metasploit-framework/jobs/43354703) (158.76s)
- [x] Verify time of running faster on this PR.

### spec --tag ~content
#### 1.9.3
- [ ] Look at time of `git diff --exit-code && bundle exec rake $RAKE_TASK` on [master](https://travis-ci.org/rapid7/metasploit-framework/jobs/43288494) (241.12s)
- [ ] Loot at time of `git diff --exit-code && bundle exec rake $RAKE_TASK` on [PR](https://travis-ci.org/rapid7/metasploit-framework/jobs/43354704) (unknown)
- [ ] Verify time of running faster on this PR.

#### 2.1
- [ ] Look at time of `git diff --exit-code && bundle exec rake $RAKE_TASK` on [master](https://travis-ci.org/rapid7/metasploit-framework/jobs/43288495) (114.53s)
- [ ] Look at time of git diff --exit-code && bundle exec rake $RAKE_TASK` on [PR](https://travis-ci.org/rapid7/metasploit-framework/jobs/43354705) (96.69s)
- [ ] Verify time of running faster on this PR.

## Travis-CI setup

### job consolidation
- [ ] Look at [job list](https://travis-ci.org/limhoff-r7/metasploit-framework/builds/43352627)
- [ ] VERIFY `cucumber` and `cucumber:boot` are listed together in ENV
- [ ] VERIFY both `cucumber` and `cucumber:boot` are run in the [job](https://travis-ci.org/limhoff-r7/metasploit-framework/jobs/43352629)

### install changes
- [ ] Look at [build log](https://travis-ci.org/limhoff-r7/metasploit-framework/jobs/43352628)
- [ ] VERIFY `development` group is not installed: `redcarpet`, `yard`, and `pry` should not be in `install.bundler` section of log.
- [ ] VERIFY `coverage` group is not installed: `simplecov` should not be in `install.bundler` section of log.

## Local coverage

### Without coverage
- [ ] `rm -rf coverage`
- [x] `bundle install --without coverage`

#### `spec`
- [ ] `rake spec`
- [ ] VERIFY no failures
- [ ] VERFY `coverage` directory does not exist: `ls coverage`

#### `cucumber`
- [ ] `rake cucumber`
- [ ] VERIFY no failures
- [ ] VERFY `coverage` directory does not exist: `ls coverage`
 
#### `cucumber:boot`
- [ ] `rake cucumber:boot`
- [ ] VERIFY no failures
- [ ] VERFY `coverage` directory does not exist: `ls coverage`

### With coverage
- [ ] Turn off any withouts: `bundler install --without ''`

#### `spec`
- [ ] `rm -rf coverage`
- [ ] `rake spec`
- [ ] VERIFY no failures
- [ ] VERFY coverage report: `open coverage/index.html`

#### `cucumber`
- [ ] `rm -rf coverage`
- [ ] `rake cucumber`
- [ ] VERIFY no failures
- [ ] VERFY coverage report: `open coverage/index.html`

#### `cucumber:boot`
- [ ] `rm -rf coverage`
- [ ] `rake cucumber:boot`
- [ ] VERIFY no failures
- [ ] VERFY coverage report: `open coverage/index.html`