First somewhat OK solution of scaling is implemented where canvases are
supported for scaling recursively. I.e. canvases with canvases with
canvases and so forth.

Signed-off-by: Jakob Brandsborg Ehmsen <jakobehmsen.github@gmail.com>