FIXED: added Opacity handling to the SVGImageElement. Also refactored the CALayer generation code to be more correct, and shared across all classes