Adds class diagram and replaces some funtions.
Cosmetics on .md and .dia files.
Adds more documentation.
Merge branch 'feature/generalized-gc' into develop