Shell rework

Our shell is incompatible with Windows.
Explorer is a big hack. We have explorer_new to fix this, but it does not work in ROS. Nor does explorer.exe from Windows.
The goal is to provide/fix the necessary functionality in our shell components to allow explorer_new, Windows's explorer, and 3rd party shell replacements to work.