Remove exception monad and cats dependency
Draft attempt at removing exception monad from state-flow and remove cats dependency, replacing it with internal version on state.clj.
As it is right now, it is a breaking change. Needs to be changed so that it doesn't break users.
Breaking changes: Before: running a flow with exception would return a pair of Exception monad and the last state. After: it returns a regular Throwable instance and the last state.
Before: We could use any cats.core helpers for composing flows Now: We should use only helpers from state-flow.state namespace, or actually preferably from state-flow.api if you are not developing a helper library. cats.core helpers will no longer be compatible.
Last commit was AI assisted, I didn't check it, we need to review it more carefully later. :see_no_evil: