Replace the queue used for management events with one that can
combine similar events. In this case, make it able to merge
tenant reconfiguration events, so that if multiple patches which
change the config merge between iterations of the event processor,
we only reconfigure the tenant once.
Tenant reconfiguration events are also associated with projects,
so make sure that when we merge them, we combine the list of projects
as well, so they have their cached configuration cleared.
Finally, don't store a reference to the tenant, but rather just the
tenant name, so that if reconfiguration events are queued, we don't
keep extra copies of layouts in ram.
Change-Id: If1669a0119b52ad0e3b9a4b92ee10d318df2eb18