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.
The conditionals on the right side here would appear to indicate there could be a situation where cmd isn't set to anything which would cause this code to do weird things here, like we might fall through and have cmd just be something like " /path:blahblahblah".

Whatever those conditionals on the right here are doing should probably be their own block above here, and perhaps have a comment indicating what they're doing (but maybe it's more obvious if I paid more attention).