How does a ViewModel survive configuration changes, and what is its relationship with the Activity lifecycle?