Use autoload in favor of require or ActiveSupport::Dependencies

MSP-11385

To help with startup time, use autoload instead of require whenever possible.  To limit overall loading time, even after boot, disable default `Rails::Engine` loading for `Metasploit::Model::Engine` and only use `autoload` so the remaining users of `ActiveSupport::Dependencies` don't have to check as many load paths.

# Verification

## specs
- [ ] `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/model/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

### Compatible changes

- [ ] Increment [`PATCH`](lib/metasploit/model/version.rb).

## JRuby
- [ ] `rvm use jruby@metasploit-model`
- [ ] `rm Gemfile.lock`
- [ ] `bundle install`
- [ ] `rake release`

## MRI Ruby
- [ ] `rvm use ruby-1.9.3@metasploit-model`
- [ ] `rm Gemfile.lock`
- [ ] `bundle install`
- [ ] `rake release`