Some Xamarin.Android improvements and bug fixes

This PR includes some Xamarin.Android improvements and bug fixes. 

This is my very first PR here on git and I did not know how to split my commits in several PRs. 
Sorry for the inconvenience.

The PR includes the following things:

###  Add new Android-classes  
* App.cs - the missing Application class for Android where the RxUI-Stuff gets registered
* AndroidLogger.cs – Simple Logger implementation for android
* ReactiveSherlock[Activity| Fragment| FragmentActivity] – ActionBarSherlock base classes
* Add ActionBarSherlock for use in some baseclasses

The App class is abstract and must be implemented in the App like this:

```
[Application()]
public class App : ReactiveUI.Android.App
{
    public App(IntPtr handle, JniHandleOwnership transfer) : base(handle, transfer)
    {
        // => OnCreate
    }

    protected App()
    {
        // => OnCreate
    }

    public override void RegisterViewTypes()
    {
        var resolver = Locator.CurrentMutable;

        // resolver.Register(() => new SearchView(), typeof(IViewFor<SearchViewModel>));
    }
}
```

###  Add some .ObserveOn(RxApp.MainThreadScheduler) to fix problems in Android
I hope understands the scheduler things right. 
* ReactiveCommand – if ```canExecute ``` touches the UI than it fails on android if the command runs on the ```TaskpoolScheduler ```
* PropertyBinding - ```bindToDirect<TTarget, TValue>``` needs to run on the ```MainThreadScheduler```
* ReactiveListAdapter - ```this.list.Changed.Subscribe(_ => NotifyDataSetChanged()) ``` needs to run on the ```MainThreadScheduler```

### New Feature: Extend Routing / Navigation with RoutingParams
With this extension we could call ```Navigate``` with additional parameters e.g. to navigate without putting the call to the NavigationStack. To keep things backward compatible I use wrapper classes which inherit from ```IRoutableViewModel``` and put some helper methods in.
And for extensibility reasons I use implement interfaces for the classes.

For Navigate without putting the call to the NavigationStack just call to Navigate :
```
router.Navigate(viewModel, new RoutingParams{NotInNavigationStack = true});
```

And OnNavigate you resolve like this:
```
private void OnNavigate(object routableView)
{
    Tuple<IRoutableViewModel, IRoutingParams> viewModelWithParams = routableView.AsRoutableViewModel<IRoutableViewModel>();
    if (viewModelWithParams != null){
        …
    }
}
```

I also added a prop ```IObservable<IRoutableViewModel> NavigateBackViewModel``` which will be populated by NavigateBack. For clarity and easy to use in a central router class
router.NavigationStack.CountChanged.Subscribe will be called in both navigation directions and if a class subscribes for Navigate and NavigationStack.CountChanged for back navigation it will get two subjects in case of forward navigation.


### Add the possibility to use a prefix in WireUpControls for layout / view ids
Because Android has these weird id handling / convention we need to use prefixes in the layout ids (see http://stackoverflow.com/questions/5582079/layout-files-naming-conventions ).
To prevent our ViewModels from these naming mess I implemented the prefix in the ```ControlFetcherMixin``` class as an optional parameter.

A call to ```this.WireUpControls(_view, "search")``` will bind a ViewModel property ```TextView TxtPath``` to the layout-id ```android:id="@+id/search_txtPath"```

### Add the dll to your Xamarin.Android-project in case you got compile errors like 'System.IO.FileNotFoundException: Could not load assembly 'System.Runtime.InteropServices.WindowsRuntime' (see http://forums.xamarin.com/discussion/11805/reactive-extension-support)
Sometimes I have got these error Message and could not compile my project. Adding these assembly fixes the problem form me.

### Add stripped solution for Xamarin project types only
This is not necessary but I don’t know how to exclude it from the PR…