tower: Monads derive MonadFix

- So we can use them as the base of the tower-statemachine MachineM
- gosh i hope this doesn't break things
- gives me an excuse to buy Levent a beer
tower-statemachine: MachineM now based on Task monad, machineLocal exposed

- required a really ugly refactoring in the compiler, ill curse that
  soon enough i'm sure
- MachineM now has p phantom type because Task p is under there