Add RetconOperation type to split dispatch in two

New type and two new monadic actions:

- RetconOperation represents an operation to be performed by the
  system.

- determineOperation inspects event data and determines which
  operation/s to perform.

- runOperation performs the action/s described by a RetconOperation
  value.
Merge branch 'master' into wip-split-dispatch
Implement process in terms of new operations
Test cases for determineOperation
Merge branch 'master' into wip-split-dispatch
Finish splitting tests for refactored operations
Merge pull request #22 from anchor/wip-split-dispatch

Split "do things" into "decide what to do" and "do it" parts