Added support for storing/retrieving images by way of a memory buffer.

This change adds the class GD.ImageData, which holds the contents of
an image file in one of the supported formats (e.g. PNG) and can read
or write it to a DotNet stream or decode it into a GD.Image object.

In addition, GD.Image now has a number of methods for creating a
GD.Image from its contents.