Store shape fill gradients' focalPoint as fixed8 instead of byte

Turns out these can have fractional parts.