EngineEdgeLabel is a data family

Remove AllowAmbiguousTypes extension
PureGraph example uses data family
Correct error in Language.hs adjacentOut/In

Sure, the type system find errors in my program, but who will find
errors in my types ;) ?
Anomaly carries EdgeLabel and Vertex information

I don't understand exactly why, but this demanded that I change the
Vertex type family to a data family. Did the same for Edge, even though
it wasn't strictly necessary; just got a feeling it was right.
PureGraph example updated for data families

Not so trivial...