window: convert shm path to toysurface
window: convert shm path to toysurface

Implement shm_surface as a sub-class of toysurface, and unify the
toysurface call sites removing most buffer type specific branching.

Do not destroy and create a surface, if the size does not change.

The resizing optimization of shm surfaces is retained, but the pool is
moved from struct window to struct shm_surface, since it does not apply
to egl_window_surface.

Signed-off-by: Pekka Paalanen <6c0263d81461c956d504307112a4ce25eaacc3d1@gmail.com>

xorgy/weston,kwm81/weston,sir-murray/weston,udoprog/weston,Tarnyko/weston-xdg_surface_present,krezovic/weston,giucam/weston,eyolfson/weston,Fantu/compositor-spice,mchalupa/weston,kwm81/weston,krezovic/weston,udoprog/weston,Tarnyko/weston-xdg_surface_present,eyolfson/weston,Gnurou/weston,Fantu/compositor-spice,Gnurou/weston,xorgy/weston,sir-murray/weston,giucam/weston,jonnylamb/weston,mchalupa/weston,Fantu/compositor-spice,jonnylamb/weston