Determine necessary volume changes as part of a deploy - fixes 272

Fixes #272.
Not related to this branch, but the logic here looks wrong. I'd expect this to be an intersection rather than a union  and I'd expect it to involve the desired state rather than the current state. Maybe I'm just confused by the variable names. I'm also confused by the calculation of `restart_containers` later in this function. Take a look and see what you think.