compositor: Mark all views as dirty when a new output is assigned
compositor: Mark all views as dirty when a new output is assigned

When all outputs are gone and views were created before they
were gone, such views would have no output object assigned and
nothing would assign it later. This makes sure all views are
set as dirty, so they can get an output assigned when an
output gets plugged in, if they didn't have any output assigned.

This change also works when a new output is added even if there already
are outputs in use. A view may be partly off-screen. If the new output
appears at a position where it overlaps an existing view, that view
should get updated.

It is enough to process only the main view_list, because views not on
that list are not shown for the moment and so do not need an immediate
update. Instead, they will get updated later as needed because making an
off-list view to go on-list inherently requires calling
weston_view_geometry_dirty().

Signed-off-by: Armin Krezović <31ec4b88003c779f400d1506dcff569d5faae2fb@gmail.com>
[Pekka: addes commit msg paragrapha 2 and 3.]
Reviewed-by: Pekka Paalanen <0f6ae7001e34c37b02fb2c1c2573ddf8f442136a@collabora.co.uk>
Reviewed-by: Quentin Glidic <241385a0e41ea713327e189bce1062decf7c1eb5@sardemff7.net>

krezovic/weston,sir-murray/weston,sir-murray/weston,krezovic/weston