message: Add check to pushThing to ensure we detect a double add
  In the event of a double add, the code would previously delete the
  current `thing`, and the re-sets the `mThing` pointer back to the object
  that was just deleted. That could potentially lead to use after free,
  and double free errors.
diff: @@ -100,6 +100,10 @@ void Tile::pushThing(Thing* thing)
  {
  if (mThing)
  {
  + if (mThing == thing)
  + {
  + throw std::runtime_error("Attempting to pushThing on a tile where it's already set");
  + }
  deleteThing();
  }
  