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.
The way I understood http://www.w3.org/TR/SVG/masking.html#ClipPathProperty the clip-path attribute can be on any graphical or container element. That's why I put the code here, since it needs to apply to just about everything.