SmrPlayer: cache the player level
SmrPlayer: cache the player level

Computing the player level from their exp is surprisingly expensive
due to the number of times it is called.

To mitigate this many-call cost, we cache the level and then
recompute it any time the player's exp changes.

smrealms/smr,hemberger/smr,hemberger/smr,smrealms/smr,hemberger/smr,hemberger/smr,smrealms/smr