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.
It seems like `:path` and `:physical_path` could also use some validation.  I believe you can use the [PathHelper](https://github.com/opscode/chef/blob/master/lib/chef/util/path_helper.rb#L63-L90) class for this.