add custom copy constructor and assignment operator to partitioning graph
implement simulated annealing as partitioning algorithm; add some new methods to the partitioning graph class for it
add function to determine critical path cost to partitioning graph
change costs for communication in partitioning graph edge creation
use critical path cost of partitioning graph in simulated annealing
perform clustering for partitioning until there is just one vertex left and choose the result with the minimum cost