Start converting Server*/Client* argument pairs to GameState*.

I'm hoping this will make future refactoring easier by seperating
out client & server logic into seperate classes.
Tile animations need to be created before the tile heights are adjusted.
Convert Pawn::Move and Pawn::force_move to GameState.
Don't leak animations.
Decouple the teleport animation from the teleport power.

Teleport is now implemented using a pawn animation and a force move
message.
Remove the power_rand_vals thing.

This was only used to transfer teleport coordinates between the client
and the server. Now it's not needed at all
Drive particle animations from the server.
Have the server generate add power notifications.
Add Server::update_one_pawn, use it in a bunch of places.
Add pawn upgrades via GameState.
Server-driven tile animations.

Something funny is going on, not sure what yet.
Make Pawn::UsePower and all the powers server-side only.

This is currently pretty broken.
dgagasgasg
Do all game-related stuff on the server. Things are very broken.
Fix ServerGameState::grant_upgrade. It was not consuming the power.
Fix mines. They have annoyingly complicated message ordering requirements.
Fix teleportation. The power use message must be on the target tile.
Fix black holes.