Introduction of new DSL for OHAI

This PR introduces a new DSL for OHAI plugins. Here is an example of how to use it: 

```ruby
OHAI.plugin(:MyPlugin) do
   provides "mydata"

   depends "kernel"
   depends "os"

   collect_data do
      # My logic... 
      mydata = true
   end
end