add reconciliation workflow to cases + tests

- form to case signal gets a new argument to force a reconciliation
- reconciliation involves deduplicating the list of actions and then rebuilding the case from the actions
- some modifications made to the sync token processing to support this mode
- a good amount of "unit" tests