Можешь объяснить, как Kotlin реализует паттерн delegation и описать роль ключевого слова `by` в делегировании как классов, так и свойств? — ДейлиПреп