Framework architecture fixes

Fixed IGraph interface (now it represents a more cohesive abstraction).
Added new class GraphProperties.