On finished workunit handling

Changed model's on_finished_workunit handler to not automatically move to the next workunit.  Instead we wait for the next call to next_item.
This makes the behaviour more intuitive/consistent, because it avoids us moving to the next item right away when we process the last item in a workunit.  This was the cause of #55.
Closes #55 and closes #57.