Player effects reset after death

Storing player effect timers in a table inside the player node allows us to cancel them on death. Also storing some reset values whenever a new effect is added to the player means that we can add as many effects as we want all at once without anything breaking.

Previously, becoming a zombie and then getting drunk would mean that the drunk player effect was based on the values of being a zombie. So if the zombie effect was running twice as fast, and becoming drunk was running twice as fast. Having both effects would cause the player to run exponentially faster rather than simply twice as fast.

Resolves #2194.