Bug 893977. Support repeating gradients in the CoreGraphics backend. r=mattwoordow

CoreGraphics doesn't support repeating gradients natively so we have to
manually repeat them. This change missing support for interpolating a
stop for the center if it doesn't line up correctly. That will come later.
Bug 895646. Use the pattern transform when drawing gradients with DrawTargetCG. r=mattwoodrow