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.
There's a bit of confusing duplication here with the code above. On the left, we're checking of the physical_path attribute was set, on the right... I guess we get false here too if this wasn't set? Is the code on the right side of the || in the code a few lines up even needed?