Day 21 - Complete P80 Digraph.fromString

Signed-off-by: Pang Yan Han <pangyanhan@gmail.com>
GraphBase.fromString: Parameterize by [G :< GraphBase[String, Unit]]

This allows us to return any subtype of GraphBase[String, Unit] for the
functions making use of it. Graph.fromString returns a Graph[String, Unit],
while Digraph.fromString returns a Digraph[String, Unit]. This allows us
to directly use Graph / Digraph in future exercises (instead of the original
GraphBase).

Signed-off-by: Pang Yan Han <pangyanhan@gmail.com>