Initial addition of boost graph structures and creation.

Note: I think this weight function should be passed by function pointer to calculateEdgeWeights(), or set in the graph class. Different applications will use a different weighting function. We should come up with a prototype that matches the use cases we see now. This issue can wait until a later PR to resolve.