func NewPolicyResolutionDiff(next *resolve.PolicyResolution, prev *resolve.PolicyResolution) *PolicyResolutionDiff {
	result := &PolicyResolutionDiff{
		Prev:       prev,
		Next:       next,
		ActionPlan: action.NewPlan(),
	}
	result.compareAndProduceActions()
	return result
}
NewPolicyResolutionDiff calculates difference between prev and next policy resolution structs (actual and desired states).
It figures out which component instances have to be instantiated (new consumers appeared and they didn't exist before),
which component instances have to be updated (e.g. parameters changed), which component instances have to be destroyed
(that have no consumers left), and so on.

Based on that it produces a graph of actions which have to be executed to transform prev to next.
package diff
import (
	"github.com/Aptomi/aptomi/pkg/engine/apply/action"
	"github.com/Aptomi/aptomi/pkg/engine/apply/action/component"
	"github.com/Aptomi/aptomi/pkg/engine/resolve"
	"github.com/Aptomi/aptomi/pkg/util"
)
type PolicyResolutionDiff struct {
	Prev *resolve.PolicyResolution
	Next *resolve.PolicyResolution
	ActionPlan *action.Plan
}