The Bash source is a little hard to read.
This commit introduces the Tunnel view model object which has support for asking for permission, starting and stopping the tunnel. It automatically updates its state and publishes changes as an ObservableObject.
This commit also renames the app target to App.
This entitlement is required to communicate with the VPN API on iOS and macOS.