[WIP] Replacing Microsoft.Windows.Shell with our own internal implementation

TODO:

 - [ ] test these changes work
 - [ ] update NuGet package to drop dependency
 - [ ] update details on site to indicate we've consumed it