* Introduce kotlin and converted the ControllerChangeType to kotlin.
* Migrated the ThreadUtils to kotlin.
* Migrated the TransactionIndexer to kotlin.
* Migrated the ChangeHandlerFrameLayout to kotlin.
* Migrated Conductor to kotlin.
* Added RestrictTo annotations.
* Migrated the RouterRequiringFunc to kotlin.
* Migrated the RouterTransaction to kotlin
* Make use of diamonds.
* Make use of lambdas and method references.
* Use an interface with default implementations for the LifecycleListener.
* Simplify the attachRouter function.
* Updated the code style and checkin the idea folder.
* Use a Controller extension function for the router transaction.
* Use let's instead of forced !! casts.
* Added default implementations of ControllerChangeListener
* Migrated the NoOpControllerChangeHandler to kotlin.
* Use a top level extension function for the asTransaction function.
* Add JvmField annotations to the ControllerChangeType fields.
* Use the local variables instead of calling the controller again.