implemented prioritized observer pattern

Allows to have control over the order in which observers are called.
implemented CLI skeleton

Main.java can be run as a java command line application.

includes two basic input handlers:
* stop command ("q", "quit", "exit", "stop") to exit the CLI
* user feedback if command is unknown

important: Main.java can not be used inside Eclipse and possibly inside
other IDEs as System.console() won't return a Console instance. Bug
report for Eclipse: https://bugs.eclipse.org/bugs/show_bug.cgi?id=122429