Changed from using image.NRGBA to image.RGBA (premultiplied alpha) in Area.Paint() since it'll be easier to work with on Windows after applying what Treeki/Ninjifox suggested I do instead of what I am doing now.
Switched to alpha-premultiplied image data for Areas on Mac OS X. This is the easiest change; it involves removing one bit flag from the NSBitmapImageRep constructor (the other changes are indentation changes).
Added a general-purpose function to produce a native-endian ARGB representation of the image. I thought cairo image surfaces would work, but they're not designed for reading in images, the cairo functions for reading image data were introduced in the next version (1.12), and GDK-Pixbuf only does non-alpha-premultiplied... This can be used on Windows though.
Rewrote Area code on Windows to use alpha-premultiplied RGB and only use GDI functions to do it... and it doesn't quite work right yet.
Switched to ARGB drawing in Areas on GTK+.
Documented the thread safety of AreaHandler and Area.SetSize().
Fixed ARGB rendering on Windows. Now to make it flicker-free...
Made Areas on Windows flicker-free.
Updated README to reflect the new Area image.RGBA changes.
Removed the GDI+ dependency on Windows since we no longer use it.