[Core] Create boot level events

This creates a structure that will allow the boot levels logic to be outside
the Kernel. Furthermore it allows extensions by simply subscribing to these
events and make custom logic to accept that a certain boot level was reached.

If later we allow custom bootstrap levels, this will support it a lot easier.