Как Python разрешает diamond inheritance? Что такое C3 linearization, и как `super()` работает с MRO? Приведи пример где MRO становится контр-интуитивным.