reactiveui/ReactiveUI — pull request #589 by paulcbetts (2014-05-11 02:03:52+00:00)
Title: Burn down ReactiveUI.Mobile, decouple auto-suspend from routing

This PR attempts to address #570 by making some drastic changes to ReactiveUI.Mobile.

* **Decouple auto-suspend from routing:** - `IApplicationRootState` is now just a marker interface. This means that, the goal of auto-suspend is to automatically restore / save / recreate a single object, whose contents can be whatever you want. Auto-suspend now does *not* attempt to load views, it's on the app to do this.
* **Move RxUI.Mobile into ReactiveUI core:** - Remove Geolocation and move auto-suspend into ReactiveUI proper. This means that the auto-suspend API is available in portable DLLs
* **Remove Routing for platforms that hate it** - We remove classes for Android and iOS that implemented Routing, because they never actually worked correctly or had significant setup cost.

### TODO:

- [ ] Simplify layers of abstraction that aren't needed now
- [ ] Add an API to get the current root ViewModel
- [ ] Add a dummy SuspensionHost for Mac and WPF that just fires Resume on Start and Suspend on Quit
- [ ] Verify API works on Android
- [ ] Verify API works on iOS
- [ ] Verify API works on WinRT
- [ ] Verify API works on WP8 Silverlight

Fixes #570