screenchooserdialog: refactor the pipewirelayout into its own component
reduces code duplication between the two layout variants
to facilitate this change an intermediate ScreenChooserDialogTemplate component was added that only serves as a means to address types from each other without having a requirement loop