Initial addition of boost graph structures and creation.

We should use a smart pointer, instead of a raw pointer in most cases.  See http://www.boost.org/doc/libs/1_56_0/libs/smart_ptr/shared_ptr.htm  

Typically we `typedef` them.  See https://github.com/ros-industrial-consortium/descartes/blob/hydro-devel/descartes_trajectory_planning/include/descartes_trajectory_planning/cart_trajectory_pt.h#L31