Allow retrieving of a pattern through fill()
Support getting and removing patterns/gradients.

This update also forces only one gradient or pattern on a page at a time. This
is good since there can only be one source in the 'fill' attribute of the svg,
so there's no reason to have extraneous elements that arent visible floating
around the defs tag.