Feature: Reactive Systems

This is not ready for merging yet, I'm just opening this pull request to discuss about some issues.

I'm especially unhappy with the naming; "ReactiveSystem" sounds too much like functional reactive programming, which it is not. We should find something else. ESReactiveSystemClient is also not really catchy. Any suggestions?

Otherwise I'll continue to streamline and clean up the code. The next change will probably be to have triggeringComponents and mandatoryComponents as init-arguments to the reactive system.