Update players based on navigating NPC's. Update player when NPC navigates into players field of view.
Moved skin update tracker code to own class (SkinUpdateTracker)
fix use incorrect setting for tab list
rename PlayerListRemover to TabListRemover
rename recently added NMS#sendPlayerListRemove, #sendPlayerListAdd methods to #sendTabList*
fixed client sometimes disconnects for: Internal Exception: io.netty.handler.codec.DecoderException: java.io.IOException: Packet 0/56 (ki) was larger than I expected, found 917 bytes extra whilst reading packet 56;
changes in Skin#setNPCTexture
Allow retrieving Skin instance by skin name instead of entity so it can be retrieved without a spawned entity instance. Changes in Skin and SkinPacketTracker.
add SkinPacketTracker#onSpawnNPC
remove redundant scheduled skin update tasks in CitizensNPC and EventListen; provide no benefit
reset current SkinUpdateTracker instance if exists instead of creating a new one for all players in EventListen#onCitizensReload
reset rotation count in EventListen when player teleports/changes world/etc
reset update trackers for players nearby NPC's that spawn in case they are not looking at the NPC.
reset skin and profile fetcher cache on citizens reload
fix -p flag in skin command not implemented
use latest skin by default
fix Property created for cached skins uses incorrect name
fix rotation based skin update in EventListen.SkinUpdateTracker
remove redundant skin update on first move in EventListen.SkinUpdateTracker
re-implement skin fetch retry; re-add settings (since reloading can cause too many requests)