slicer: remove unused parts of module till fixpoint
slicer: remove unused parts of module till fixpoint

if we have a function that is unused and call another function, that
the another function becomes unused after removing the former one, so
remove unused from module until fixpoint. This still not solve mutual
recursive function (A calls B and B calls A), that we would need to do
via dg. But better than nothing :)

mchalupa/dg,mchalupa/dg,mchalupa/dg,mchalupa/dg