Split what used to be the Surface class to a concrete implementation, Image.
Fixed get_width()/get_height()'s return value.
Made Image's constructor explicit.
Moved load_optimized() (previously optimize) to its the global scope.
Added another constructor for Surface.