Instead of tying the tile-buffer in MultiTileLayer directly to the back-buffer
of the page, make sure rendering is always aligned to the tile grid and use
tiles on-demand. This makes better use of tiles when panning/zooming, and opens
up the route for further optimisations.
This adds support for rendering to a tiled software buffer when using the
Java compositor. Tiles are assumed to be packed tight and stored sequentially,
by row.