Fix warnings in DSL::Plugin spec
Add support for :focus tests to spec helper
Extract plugin<->provides mapping to custom class

Code to map a plugin to the attributes it provides or look up a plugin
by provided attributes was located in different parts of the code base
where it operated directly on the underlying data structure. Extracting
to a class lets us access the information we want using domain specific
terminology so things are easier to understand.
Extract ProvidesMap and tests to their own files

Also eliminates redundant tests in other classes that primarily test
ProvidesMap behavior. Higher-level tests have been left in place to
verify the interaction of the components.
Remove access to ProvidesMap internal data structure

Only test code was accessing this, modified to use the public API of the
class.
Rename variables/methods for ProvidesMap to provides_map

The name "attributes" to refer to the map of attributes<->plugins
providing attributes was confusing because it was inaccurate and often
used near a local variable named "attributes" containing a very
different kind of data (such as an Array of strings referring to
attributes another plugin depended on). Renaming to "provides_map"
clears up the confusion.
Remove no-longer-relevant "TODO"
Merge branch 'plugin-provider-cleanup'

Extract a class to maintain the provided attributes to providing plugins mapping
Clean up `jenkins_run_tests.bat`

This change ensures the bat file is in sync with what we have in 
opscode/chef.
Merge pull request #236 from opscode/fix-windows-tests

Clean up `jenkins_run_tests.bat`
Move VersionVI and VersionVII plugin classes into their own files.
This PR includes a few refactorings. Since they are intertwined they are done in a single PR :(

1-) VersionVI and VersionVII classes are moved to their own classes.
2-) VersionVII class only gets the data instead of full System object.
3-) A new integration testing infrastructure is started (similar to Chef integration tests).
4-) Loader code is refactored.
5-) New integration tests for Loader are added.
Refactor hints to its own class.
Disable one test which requires changes to require_plugin() which will be done as a separate PR in order to keep this PR small.
Merge pull request #239 from opscode/OC-9924

OC-9924 - Recursively search plugin_path directories for plugins
Add option to only run plugins providing requested attributes

* `Ohai::System#all_plugins` takes an option whitelist filter
* `Ohai::ProvidesMap#find_providers_for` now finds all plugins at the
  specified nesting or deeper. For example, if a plugin provides
  "virtualization/networks" and no plugin provides "virtualization",
  then find_providers_for(["virtualization"]) would return `[nil]`. It
  now finds all providers deeper than the specified level in the map.
Merge branch 'run-mode-option'

Add whitelist attributes run mode option to Ohai::System API. Integrating with
CLI will be done in a follow-up patch.
Rewrite system specs with OHAI integration testing infra.
Refactor the runner class.
Make sure require_plugin() checks v6 plugins first.
Use partial paths as keys in the v6 dependency solver.
Handle AttributeNotFound exception correctly.
Remove the left over pry statements.