Introducing SurfaceImage.

A SurfaceImage is an Image that's backed by a Surface. This enables the sharing
of a single surface among multiple ImageLayers (previously not possible). It
unifies the API even more (SurfaceLayer is now deprecated and will go away).

There are some restrictions that unfortunately have to be enforced at runtime
rather than via the type system. You can't bitmap transform a canvas because it
has no underlying bitmap. You currently can't turn a SurfaceImage into a
Pattern. You currently can't render a SurfaceImage into a Canvas.

I would like to have factored Image into Image, BitmapImage, CanvasImage and
SurfaceImage, with some of the current Image methods moving into BitmapImage.
But that would have been hugely disruptive to all existing PlayN games. So I'm
opting for minimal disruption with lurking runtime surprises.

There are some rough edges left to clean up: I'll make some things work that
don't currently (subimages of surface images), and I'll improve the way in
which some unsupported things fail (drawing a SurfaceImage to a Canvas will
currently throw a ClassCastException, which is messy).
Restructured drawing of images and subimages.

Subimages now call draw() directly on their parent instead of overriding a
bunch of methods and relying on magic to happen. This new structure is still a
twisty maze of passages, but it's a slightly more obvious twisty maze of
passages.

It also allows the parent image to be funky, like in the case of SurfaceImage.
It turns out we didn't need the funk in the case I thought we did (tiling a
sub-image of a surface image), but it's still good to support the funk.
Moved pattern creation for sub-images into parent image.

This is the first step toward eliminating per-platform ImageRegionGL
subclasses.
Factored rendering to canvas into AbstractImageGL; introduced AbstractCanvasGL.

This eliminates the various FooCanvas.Drawable interfaces, eliminates the need
for per-platform customizations of ImageRegionGL, allows SurfaceImageGL to fail
sensibly when requested to render itself into a canvas, and removes ~230 lines
of code. Less code == mo' bettah!