Initial addition of boost graph structures and creation.

We typically used `protected` instead of `private` unless we are absolutely sure we don't want a sub-class to have access to the method.  This doesn't matter much at this point, but it may in the future.