added the IHaveState interface used to save/restore view model state

added the AppPage class and modified the CustomFrameAdapter so as to allow the new class to call the OnNavigated method
modified the app class so as to save/restore the application state when starting/suspending the application
added a missing spec
updated the restore state code to handle restore exceptions and fixed a bug where even if the shell frame content was not set, the main view was still not set because the frame by default had content set to the string "Frame"
update the shell view so that it sets datacontext null on the shell frame and removed some code from CustomFrameAdapter as this is not needed anymore
removed the class restrictions from the storage service
started to make the music directory view/view model be able to persist state
extracted the loading of application settings into a settings helper to remove code from the app class
added the SerializableModelBase and modified the Index view/view model/class to use the features of this new class, allowing for parameters to be passed to the navigation service and not crash while calling  GetNavigationState for the shell frame
removed the GenericSubsonicModel class
fixed a spec and removed an old file reference
Merge branch 'master' into saveRestoreState

Conflicts:
	Client/App.xaml.cs
	Client/Index/IIndexViewModel.cs
	Client/Index/IndexViewModel.cs
	Client/Main/IMainViewModel.cs
renamed the NavigateByEntityType method from the NavigationServiceExtensions to NavigateByModelType
extracted the Name property to SubsonicModelBase/ISubsonicModel
fixed an issue in the IndexViewModel where the on click action was set to the old ArtistClick implementation instead of the base ChildClick
added a class restriction to the DetailViewModelBase generic parameter
switched to id based navigation and updated the way the playback viewmodel handles setting it's Parameter property
removed unused code
fixed issue with title not appearing on detail viewmodels due to the fact the default AfterLoadModel method would never terminate
moved the search logic from shell view model to search view model