[CairoPattern] the newly created CairoPattern if successful, or
an error pattern in case of no memory.
This function will always return a valid pointer, but if an error
occurred the pattern status will be set to an error. To inspect
the status of a pattern use cairoPatternStatus.