This newer version has following changes to the previous version:
1. For savging time, build the initial steiner tree by adding some faked
edges connecting the required vertices (terminal nodes) which have very
big weights.
2. Introduce a class called Timer to facilitate performace tracking.
3. Some other small improvements on the existing classes.