NSImageName and NSImage.ImageNamed(NSImageName)

Instead of exposing the NSImageName values as string constants,
instead provide an enum for their names and map them to the
strings in an override method, NSImage.ImageNamed(NSImageName).