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.
These XPath lines could use some simplification or clarification. There's a bunch of order happening in there... looking at the right I might think that that the values on the left like user_name is either true or false. Some parenthesis might clear that up, but I there's probably a ton of value in considering if you could have a separate method implement this logic and then call that for each attribute/variable here.

Yeah, I'm just not sure what's happening here, so it could use some cleanup.