Added an optional parameter for edge IDs

1. You can now specify an edge property name to be used as edge ID
2. The _name_ property of nodes are now also added as an additional property
3. Relevant test cases have been added