What is destructuring in Kotlin and where do `componentN()` functions come from? | LetsGit.IT