kcm: fix more papercuts with screen mirroring
Commit 1 is just a refactor / bugfix for edge cases
Commit 2 prevents the user from mirroring a disabled screen, which would get the KCM all confused and buggy
Commit 3 makes changing the scale on replication sources work properly, without any weird warnings about gaps or overlaps between outputs