Token, Node and Edge classes all use smart pointers
Little bit of header cleanup
I did change much.  Just syncing