Abstract Graph interface and unify Graph/OptGraph hierarchies
Created by: gkirgizov
Graph & OptGraph (with GraphNode & OptNode) completely duplicate each other. The original purpose of separating Optimiser from doman (ML) specific can be acheived by using common Graph interface.