Initial Revision for edge and edge list class implementation and interface
Merge branch 'add_edge_and_edge_list' into develop