How does state binding work in SwiftUI, and when would you use @State, @Binding, @ObservedObject, or @StateObject for Peloton interactive screens?