Support for clip path

Adds support for &lt;clipPath&gt; and the clip-path attribute. &lt;clipPath&gt; elements aren't rendered as part of the normal display but if they're referenced in a clip-path attribute then they clip the element that references them.

This implementation uses the CALayer's mask property to do the masking. This is not entirely correct since the definition of &lt;clipPath&gt; requires no alpha blending (except for anti-aliasing) while CALayer's mask property does support anti-aliasing, but most uses of &lt;clipPath&gt; don't contain alpha in their path definitions so this generally won't be a problem in practice. As a side note CALayer's mask property could also easily (and more correctly) be used to implement &lt;mask&gt;. I don't plan to do this however.

The Coins.svg sample in the demos has been changed to use &lt;clipPath&gt; to clip the images over a gray background.
We need an interface "SVGUnitTypes" (in SVG-DOM folder, since this is simple to do right), which appears to be a header only, containing these constants.

We've been creating Enums where the Spec "implies" them. We have a MOSTLY consistent naming scheme :( (need to fix that!), where we've tried to make enums with same names/case as the Spec uses.

Looks to me like we should have either:

SVGUnitType.h:
   enum SVGUnitType { SVG_UNIT_TYPE_UNKNOWN ... }

or:

SVGUnitType.h:
   enum SVG_UNIT_TYPE { SVG_UNIT_TYPE_UNKNOWN ... }

...both of those look sensible to me. I think I prefer the first one, since ALL CAPS ususally means "constant" in C/objC.

What do you think?