Outfits in player state

Outfits are now stored as part of player state and updates during
multiplayer like any other state variable, even though they are nested
objects.

This was achieved by using JSON to create a clone of the state value to
ensure that lastState[i] never references state[i], and to ensure that
equality is evaluated appropriately.