Beef up ImageApprovalsRule
ContainerPainter becomes HorizontalListPainter
Store contexts separately from components