[INTERNAL] generified the ViewerComposite class

The concrete viewer implementation must now be passed in via generics.
This change also shows nice WTF in the inheritance structure of the
[Project|Resource][Display|Selection]Composite classes.

Change-Id: Id1e5454498798f0a29f327907eff4f40158dfc23
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1162
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>