Initial graph data structure implementation.
Move graph out to separate file.
Add shortest path implementation, improve doc.