Major change with multiple features

* Virtual Directory Support
* section unlock and lock support
* fixed issue with :add on pool provider not running all config
* fixed issue with :config on all providers causing application pool recycles (every chef-client run)
* moved to better method for XML checking of previous settings to detect changes

I apologize for the large pull request but the speed of approvals is taking too long and we have had to write too much code.
http://docs.getchef.com/lwrp_custom_resource.html#validation-parameters

It would need to look like

```ruby
attribute :path, :kind_of => String, :callbacks => {"Should be a valid path" => lambda {|path| Chef::Util::PathHelper.validate_path(path_to_validate) } }
```

But yes, a callback would work