Fetch complete profile for skull items, similarly to TileEntitySkull.

This PR adds similar logic to SkullMeta and NMS ItemStack in order to fetch the skin blob from Yggdrasil, allowing the item to have complete data. The logic uses TESkulle's executor and cache, which are now public.

Caveat: When using skull meta, the user must refresh the inventory, because that can't be done form the context in which the lookup is done.
Shouldn't this be `if( !profile.getProperties().isEmpty() )` ?