Explain the architectural differences between MVVM and MVI, and the pros and cons of each for mobile apps.