Fix string representation of an Edge object

- If edge has a non-null type, then string representation is
  '<1 --> 2> (baz)', where 1 and 2 are vertices and baz is edge type
- With null edge type, it is '<1 --> 2'
- After this commit, with null type, '<1 --> 2>'
- Specs added
Merge pull request #1022 from prathamesh-sonpatki/ir-specs

Fix string representation of an Edge object