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.
Maybe right before you go into these conditionals set something like
```
cmd = "#{Opscode::IIS::Helper.appcmd} set"
```
which reduces a little duplication, so then in each one you could make two appends, one for what we're setting and another for the values, e.g.

```
cmd << "config /section:applicationPools"
cmd << "\"/[name='#{@new_resource.pool_name}'].recycling.logEventOnRecycle:PrivateMemory,Memory,Schedule,Requests,Time,ConfigChange,OnDemand,IsapiUnhealthy\""
```

It doesn't help a lot in this section I guess, but it would make the lines in following sections a little shorter and reduce the horizontal scrolling github is making me do. :D