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.

Nothing at the moment.

## TODO:

- [ ] Split logic and makes as much portable as possible.
- [ ] Figure out how to register implementation specific stuff.
- [ ] Make it all work.