LiterallyCanvas renders using multiple canvases

* New constructor: `LiterallyCanvas(containerEl, opts)`
* `LiterallyCanvas.repaint()` -> `LiterallyCanvas.repaintAllLayers()`
* `LiterallyCanvas.repaintLayer('main|background', dirty=(layer=='main'))`
* All children of outermost element are obliterated after old canvas saved
* CSS consolidated