This PR changes behavior of deploying/scaling application with constraints described in
MGI-3623. Currently constraints are matched for all instances of application. This PR introduce matching constraints only with tasks in same version deployed after last configuration change. What does it mean? If application has constraints and it's configuration has changed (e.g. constraint was changed), after deployment we could end up with instances that does not match desired constraints. On the other hand after scaling application we (usually) have instances that match constraints. After my changes, deployments always end up with desired distribution of instances although after scaling, newest instances could not match that constraints, because constraints will be checked across instances with same version.