implement partitioning graph: construction, console and graphviz output
implement partitioning pass: create graph, apply random (but deterministic) partitioning, print output (console and graphviz)
add include guard to C++ header files to avoid multiple inclusion