Fixed incorrect cycle detection
Fixed incorrect cycle detection

The previous implementation of [assert_no_cycle] would raise in
presence of directed acyclic graphs. Bonus: the fixed implementation
is now pure (well apart from raising an error if there is a loop).

solvuu/solvuu_build,solvuu/solvuu-build