Port yard.rake

MSP-11068

# Verification Steps

- [ ] `bundle install`

## `rake cucumber`
- [ ] `rake cucumber`
- [ ] VERIFY no failures

## `rake spec`
- [ ] `rake spec`
- [ ] VERIFY no failures

# Post-merge Steps

Perform these steps prior to pushing to master or the build will be broke on master.

## Version
- [ ] Edit `lib/metasploit/yard/version.rb`
- [ ] Remove `PRERELEASE` and its comment as `PRERELEASE` is not defined on master.

## Gem build
- [ ] gem build *.gemspec
- [ ] VERIFY the gem has no '.pre' version suffix.

## RSpec
- [ ] `rake spec`
- [ ] VERIFY version examples pass without failures

## Commit & Push
- [ ] `git commit -a`
- [ ] `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 should transition from pre-1.0.0 to 1.0.0:

- [ ] Update the [`MAJOR`](lib/metasploit/yard/version.rb) to `1`.
- [ ] Reset [`MINOR`](lib/metasploit/yard/version.rb) to `0`.
- [ ] Reset [`PATCH`](lib/metasploit/yard/version.rb) to `0`.

## MRI Ruby
- [ ] `rvm use ruby-2.1@metasploit-yard`
- [ ] `rm Gemfile.lock`
- [ ] `bundle install`
- [ ] `rake release