308 add zoom and move to graphs

Shall fix #308 and #256 by providing zoom and move capabilities for the graph view.
Also includes some refactorings and general optimizations.
Style/CollectionMethods: Prefer `inject` over `reduce`.