Port yard.rake

MSP-11068

# Verification Steps

- [x] `bundle install`

## `rake cucumber`
- [x] `rake cucumber`
- [x] VERIFY no failures

## `rake spec`
- [x] `rake spec`
- [x] VERIFY no failures

## `rake yard`
- [x] `rake yard`
- [x] VERIFY no errors
- [x] VERIFY no YARD warnings
- [x] VERIFY 100.0% documented

## Documentation
- [x] Read CONTRIBUTING.md
- [x] Verify steps for updating the version follow semver.org.

# Post-merge Steps

Perform these steps prior to pushing to master or the build will be broke on master.

## Version
- [x] Edit `lib/metasploit/yard/version.rb`
- [x] Remove `PRERELEASE` and its comment as `PRERELEASE` is not defined on master.

## Gem build
- [x] gem build *.gemspec
- [x] VERIFY the gem has no '.pre' version suffix.

## RSpec
- [x] `rake spec`
- [x] VERIFY version examples pass without failures

## Commit & Push
- [x] `git commit -a`
- [x] `git push origin master`

# Release

Complete these steps on DESTINATION

## `VERSION`

### Incompatible changes

The changes are incompatible because new runtime dependencies were introduced.  Since the port constitutes the main API of metasploit-yard, the version has transitioned from pre-1.0.0 to 1.0.0:

## MRI Ruby
- [ ] `rvm use ruby-2.1@metasploit-yard`
- [ ] `rm Gemfile.lock`
- [ ] `bundle install`
- [ ] `rake release`