Move desktop_shell_workspace to its own class.

This removes the remaining desktop_shell_* code from the common
library, and moves all of it in the desktop_shell subdirectory.