Updated gradient element handling to create only single gradient element per unique fill

The resultant performance increase is more than 2x.

<pre>
Fill element with gradient - UNOPTIMISED
	┌───────────────────────────┐
	│  Safari (7.0.1) / Mac OS  │
	├───────────────────────────┤
	│  98.919  ±3.5%            │
	└───────────────────────────┘

Fill element with gradient - OPTIMISED
	┌───────────────────────────┐
	│  Safari (7.0.1) / Mac OS  │
	├───────────────────────────┤
	│  207.173  ±0.9%           │
	└───────────────────────────┘
</pte>