Replace nested monads with transformers.

The stepParser function was particularly complicated by the need for
non-determinism imposed by the disambiguation feature, so I refactored the code
to use monad transformers instead of nesting monads in a non-compositional way.

Non-determinism is implemented using ListT-done-right, whose code is in the
Internal module for the time being, until it is merged into transformers.
Rename liftEither/liftMaybe to hoistEither/hoistMaybe.
Add tests for ordered argument parsing.
Enforce order of positional arguments.
Update CHANGELOG.
Add MonadPlus instance for ReadM.
Add one more test for ordered argument parsing.