Simple approval process

Starting the approval process begins as a link in the info widget.  Clicking it and filling out the modal creates a workflow, task, cycle, and associated objects.<br>Tasks can be added to direct the original object owner to make edits.<br>When all tasks are complete, the object changes from Draft state to Final state.<br>Tasks also support Entries in the Workflow view.
Two things:
1. `refresh_attr` calls `refresh()`, while `refresh_all` merely ensures presence using `RefreshQueue` (and thus wouldn't update the locally cached instances).  (Probably we should decide a new naming scheme to differentiate reify/load/refresh.)
2. `CycleTaskGroupObjectTask` has a link directly to `cycle`, and `CycleTaskGroupObject` (now) has a link directly to the object.  Which objects here need to be refreshed, and which are only refreshed because they're on the path to the ones needing refreshing?
3. I'm not sure there is any case that exercises it, but if `object.selfLink` is null, shouldn't we still refresh the other objects?