Implement pattern fill (fill-image attribute)

- Rename IconCache to ImageCache, as it now is not only used for icons
- Use it to store fill patterns and implement fill-image mapcss attribute
I've had a thought that it may store Cairo::SurfacePatterns for fills (in addition to images for icons), but a microbenchmark showed that construction of pattern from image is very fast so it's not needed.
- Make ImageCache thread-safe with shared lock

what concerns me however is that Cairo::RefPtr doesn't seem to be thread-safe.
Because of that, we may have memleaks and use-after-free cases with shared cairo objects. This should be checked.