Monad wrappers: reorder more

Here I swap some runners where safe (hopefully).
runMainState ↦ withEmptyState
simpleRunMonads ↦ runOptMonadsWithAssertions, runMoreMonads ↦ runErrorsAndOptsWithEmptyState

I'm still slowly sorting this out.
Remove/cleanup monad runners

Now that I somewhat understand this whole thing, I can simplify a bit
all the layers I created.

* runErrorsAndOptsWithEmptyState can be folded into runErrorsAndOpts,
  adding state to a few callers who don't need it.
* runOptMonadsWithAssertions can be folded into its two callers
* runProcessFile can be inlined into its single caller (which is special
  anyway since it collects assertions)
* withEmptyState and runOptMonads can be moved into PTS.Process.Main
* withEmptyState can be shift leftwards at the top-level by swapping
  with runErrorsT, to clarify that it's a single shared state.
Cleanup interface for PTS.Interactive
Update REPL API and docs

* Take PTS instance as 1st arg
* Fix out-of-date code in DEVELOPMENT.md (we should automate testing of this)
* Expose state produced by processStmt, since there's no interesting
  return value. This means de-inlining some wrappers I just inlined :-(,
  but that's a local thing and with a clear purpose :-).
* Document how to lens out the interesting stuff