Fix DirectedMultigraph

I recently posted on the mailing list about an inconsistency I perceived in the definition of a DirectedMultigraph. A DirectedMultigraph should not allow loops. In this PR, I change the constructor to forbid loops.

In the test, I rename the method `initMultiTriangleWithMultiLoop()` to `initMultiTriangle()` (since loops are now forbidden). I remove the loop from v1 to v1 and instead add an edge from v2 to v1. I make the necessary changes in all the asserts.