Convert SkinNums to UINT16 and raise skin limit to UINT16_MAX
This MR goes through all the skin number related code and raises the limits to UINT16 allowing for a way larger amount of skins (65535 in theory) to be loaded at once although capped at 512 for this MR. I've used something similar in a personal client and it seems to work pretty well from testing I've done.