cutoff Free monadic values at given depth

Generalized `cutoff` function from `Control.Monad.Trans.Iter` for `Free`, `FreeT` and `FT`.
The idea is that functor `f` represents branching for a node and `Free f` then represents a tree. So we then `cutoff` branches of this tree at given depth.

Comment is stolen from `IterT` and may need some improvements.