Fixes a problem where the propagate assignment checkbox on project
tasks was not effectively propagating task assignment to descendants.
Also added some intelligence around checking / unchecking the box such
that the setting change propagates to children. This allows for
interesting configurations for assignment propagation, such as limiting
propagation only to one level or only starting it at a given level of
subtasks.