Use less front facing object classes in the back-end classes

I removed most of the dependencies between the interfaces/back-end and the front-facing classes. There are still some things to improve in this respect. I placed TODO markers to the respective code parts.

Further I cleaned up some code on the fly.

This fixes #308
Lets use forward declaration where possible