ChannelManager.findCompatibleChildren: propose children correctly if old and new are equal
ChannelManager.findCompatibleChildren: small refactoring
ChannelManager.findCompatibleChildren: propose cloned children as compatible

Previous implementation of findCompatibleChildren defined "compatible" as "referring to the same product name".
This patch redefines "compatible" as "cloned from the same original or referring to the same product name".
ChannelManager.findCompatibleChildren: add tests
Base channel update: no-op if new channel equals old one