Cleanup FreeT and IterT instances

Just cleaning up:

- removed `Functor m` contraint for some `IterT` instances;
- added `Apply` and `Bind` instances for `FreeT`.