CLC-846 Split CanvasProxy into 1 class per cacheable request, and make caching work for all of them