Don't keep inventory letters on floor items

That leaks information about how many items another player has
and complicates code. It's reimplemented via actors carrying letters
of their past items instead.
Use keysSet and fromSet
Use EnumMap and EnumSet for PointXY
Keep Item and ItemId in bijection

Now items stack correctly without any effort on our part.
Add and use moveItemAtomic
Introduce atomic commands for movement, etc.
Define inverses for atomic commands
Store atomic commands in a WriterT and evaluate them later
Add a server action monad in which only StateServer changes are permitted

This is intended for code that produces atomic actions instead
of changing State.
Split RNG seed between server and client state, again
Clean up semantics of server commands
Define position and FOV-invalidation of atomic actions