Proper database.yml precedence

[MSP-11153](https://jira.tor.rapid7.com/secure/RapidBoard.jspa?rapidView=84&selectedIssue=MSP-11153)

Ensure that the database.yml precedence for `config/application.rb`,`lib/metasploit/framework/parsed_options/base.rb`, and `lib/msf/ui/console/driver.rb` use the same code to decide which `database.yml` to use and that the precedence is

1. An explicit argument to the `-y` flag to `msfconsole`
2. The `MSF_DATABASE_CONFIG` environment variable
3. The user's `~/.msf4/database.yml`
4. `config/database.yml` in the metasploit-framework checkout location.

Cucumber work based on @lsanchez-r7's aruba-testing branch, but with using the cucumber-rails generator from the beginning.  I would have used his branch directly, but there was one failure in a scenario I didn't need, so I went with setting up cucumber myself.

# Verification Steps

## local

### specs
- [x] `rake spec`
- [x] VERIFY no failures

### features

#### Correctness
- [x] `rake cucumber`
- [x] VERIFY no failures

#### Recovery
- [x] Interrupt `rake cucumber` with `<CTRL>+C` when it says "When I run `msfconsole --environment test --yaml command_line.yml` interactively`
- [x] `less config/database.yml`
- [x] VERIFY contents are from scenario and not correct.
- [x] `less config/database.yml.cucumber.bak`
- [x] VERIFY contents are the original `config/database.yml`
- [x] Rerun `rake cucumber` and allow it to run to completion.
- [x] `ls config`
- [x] VERIFY `config/database.yml.cucumber.bak` does not exist
- [x] `less config/database.yml`
- [x] VERIFY contents are original.

## travis-ci
- [x] VERIFY there is a build for specs
- [x] VERIFY the spec build passes
- [x] VERIFY there is a separate build for cucumber
- [x] VERIFY the cucumber build passes