Split bootstrapping the framework and initializing the application.

This PR adds bootstrapping logic for ReactiveApp. As part of the bootstrapping process, an instance of ReactiveApplication is created which should initialize all application logic.

## Goal

At this moment registering ViewModels and services are duplicated in every project. Although these files are usually linked, this results in a mess that you can smell from hundreds of miles away. We want initializing the application to be portable with a capital P.

## How to start an app, the easy way.

This will be added later.

## Other changes.

* In previous internal frameworks we had a `ThreadHelper` or `Executor` class. These classes were used to run things on the UI thread and were heavily based on Tasks. This is going away and operation can now be scheduled via the IMainThreadDispatcher.

## TODO:

- [x] Split logic and makes as much portable as possible.
- [x] Figure out how to register implementation specific stuff.
- [x] Implement platform specific Bootstrapper functionality.
- [x] Make it all work.