quartz: add support for shadow
shadow: move shadow cache interfaces to cairo-surface-backend

Moving shadow cache interfaces to backend allows to implement shadow
cache for each surface type that does not have cairo_device
quartz: add shadow cache
shadow: initialize shadow cache size properly