Restore order of ErrorsT and StateT monads

As requested by Tillmann:

"I'm concerned about the difference between s -> Either e (a, s) and s
-> (Either e a, s). The former recovers a clean state after recover is
triggered, while the latter keeps the state from the throwError.
Currently, it probably doesn't matter, but I would prefer the former for
its more powerful recover semantics."

in the discussion at:
https://github.com/Blaisorblade/pts/commit/2e4d540b93bf22f2a8e42e19e9b69b065152b1ec#src-lib-pts-process-main-hs-P8