Add support for debugserver forwarding to AppLauncher for LaunchPlugins

This change allows AppLauncher to launch and attach to an app on the device and forward messages from the debugserver to a local port. LaunchPlugins can then take over the remote process. LaunchPlugins may need to know about the remote path of the application, something they can achieve by setting an AppPathCallback on the IOSDeviceLaunchParameters.

This PR additionally fixes an issue affecting DWARF generation for Object#<init>.