removing the observer package
inserting the observer in the main package
Observer rework

- Added Observer methods to inform about more events
- PrintStreamObserver informs about results at the end
- Created VoidObserver to have a standard "/dev/null" if there is no
observer set. This way the engine does not have to check for an ovserver
anytime there is an event.
- Observer is now part of the engine constructor, this breaks current
tests
- drawNext does return void again