As part of supporting multi-role frameworks, we can no longer assume that the framework ID maps directly to a role. Even without multi-role framework support, this assumption breaks if we want to allow frameworks to modify their role.
To determine which role resources are allocated to, we now need to store allocation information within the Resource:
An alternative considered was to augment TaskInfo or ExecutorInfo or introduce another layer on top of Resource called Allocation which contains Resource. The first option does not work since some components that need to know about the allocation do not have visibility into the tasks/executors. The second option requires dramatic changes and so is harder to accomplish.