Pathfinder A* algorithm allocates nodes in place

Instead of creating AStarPoint objects using ‘new’ allocations, they
are now constructed directly inside the Open Set vector for better
memory locality and easier management of the points’ lifetimes (no need
to explicitly delete all points created, and the possibility of leaking
A* node objects is removed).
Storing Roster Characters as non-pointer members

CharacterRoster’s map of Characters now allocates them in-place in the
m_allCharacters map, instead of as raw pointers in the map.

Also fixed a bug where a message pipe reference is leaked on
destruction of the TileEngine, causing problems if leaving the
TileEngine and then going to a different state that updates the
PlayerData roster.
Manage GameState objects using shared_ptrs

GameState objects are now managed as shared pointers rather than raw
pointers.