Unique indices and validations that include realm_id

[MSP-10963](https://jira.tor.rapid7.com/secure/RapidBoard.jspa?rapidView=84&view=detail&selectedIssue=MSP-10963)

I got confused about realm_id being a "Don't Care" for presence and being a "Don't Care" for uniqueness validation until @jlee-r7 pointed out my mistake.  This is to fix that mistake.  It also does complete happy and sad path testing of both the indices and validations instead of just the sad happy testing I did previously.

# Verification Steps

- [ ] `bundle install`

## `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/credential/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 master

## `VERSION`

The `PATCH` has already been updated because the bug fix is a compatible change because the indices and uniqueness validations now allow different realm_ids, which they didn't before.

## JRuby
The JRuby build is currently failing on travis-ci (and has for awhile), so don't release a copy until someone figures out why it's failing and it is fixed.

## MRI Ruby
- [ ] `rvm use ruby-1.9.3@metasploit_data_models`
- [ ] `rm Gemfile.lock`
- [ ] `bundle install`
- [ ] `rake release`