Prevent rounding to 0
Pass simulation by reference instead of by value in tilemap

I think passing by value would delete the original simulation's pointed-
to members at the end of newMovement.
Event*Cmp are structs, not classes
Fix logic troll/typo. We don't delete non-arrived NPCs.
Silence constructor order warning
Remove Player's copy constructor
Position has equality testing (I'll use it later)
Remove Simulation's copy constructor and declare ~Positionable as virtual

(I get warnings when ~Positionable is not virtual since Positionable has
some virtual methods)
NPCs are managed by the server and sent over the network

Also, restructure how Simulation manages addNPC:
* Only one addNPC method with optional uuid argument.
* buildNPC lets the Simulation apply its default and sends back an NPC*.
throw an error, not a string