[UIKit] handle app lifecycle events in a custom object instead of AppDelegate removes the need to call SDL counterparts manually when custom AppDelegate is used