Graph Library based on C++ making heavy use of templates and STL