This adds C Swift bindings for burrow via compiling burrow with a matching header file.
This commit also fixes all linter warnings and errors.
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.