+ Edge class for handling weighted edges
+ EdgeWeightedGraph class
Add Minimum Spanning Tree (MST) interface
Merge branch 'feature/mst' into develop
Add Minimum Spanning Tree Interface

Add an interface class for mst. MST could be used in solving various,
huge amount of problems
Merge branch 'feature/min_span_tree' into feature/minimum_spanning_tree

Conflicts:
	classic_algorithms/classic_algorithms.cpp
	classic_algorithms2/graphs/mst.h
Add Kruskal algorithm MST implementation

Kruskal's algorithm computes MST in time proportional
to ElogE in worst case.

operation	frequency	time per op
*********************************************
build pq	1		ElogE
delete-min	E		logE
union		V		log*V
connected	E 		log*V
           log*V <=  5
If edges are already sorted, order of growth is Elog*V
Add Prim algorith lazy approach MST implementation

Lazy Prim's algorithm computes the MST in time proportional
to ElogE and extra space proportional to E in worst case

operation       frequency       binary heap
*******************************************
delete min      E               logE
insert          E               logE
Merge branch 'feature/minimum_spanning_tree' into develop