fix(resize shape): add padding to resize logic
impr(subprocess expand): works rudimentary
feat(layouting): add rectangle utility
feat(participant resize): add resize validation rules

New validation rules are applied when resizing pools and lanes
- Upon resize attempt, the children bounding box of nested lanes is
checked
  and the resize operation is not permitted in case the children bbox is
  violated
- For resizing from top / bottom the first / last visible lane is taken
into
  consideration only

Relates to CAM-481, CAM-489 and CAM-250
feat(layouting): add diff utility for rectangles
test(participant layout): add test infrastructure
Merge branch 'develop' of github.com:camunda/camunda-modeler into wip-participant-layout
Merge branch 'develop' of github.com:camunda/camunda-modeler into develop
Merge branch 'develop' into wip-participant-layout
feat(layout participant): Add resize into correct direction
feat(layout participant): recursive update di