fix: iOS rendering if GeneralPaths
When rendering shapes in iOS, it generates an alpha texture mask for the shape. It tries to cache these textures so that they can be reused when the same shape needs to be rendered, but the hashing function to identity equivalent shapes was returning false positives, which resulting in rendering the wrong shapes. This PR reimplements this hashing function so that it should only return a match when the shape is actually the same.
This may fix several of the open issues related to iOS shape rendering. Including:
https://github.com/codenameone/CodenameOne/issues/3403
https://github.com/codenameone/CodenameOne/issues/3305
https://github.com/codenameone/CodenameOne/issues/3302
https://github.com/codenameone/CodenameOne/issues/3106
https://github.com/codenameone/CodenameOne/issues/3037