keep task end-start upon dependency shift

bug 1333:
when shifting a task, don't set task end to start + duration,
rather, calculate end-start (only working hours) and add that to new start date