Deserialize and cache paths in the render backend

The Canvas2D backend is actually usably fast, now. \o/