Previously, this would crash because `Gfx::Bitmap` can't have a zero size.
This implements the basic interface, classes and functions for OffscreenCanvas. Many are still stubbed out and have many FIXMEs in them, but it is a basic skeleton.