TemporaryPlayer doesn't support getName(), so use getAddress() for maps

In addition, adding a useful ConcurrentPlayerMap that doesn't store 
player instances directly, and can even handle TemporaryPlayers.
Avoid item stack IDs if we can.