Add ability to load game from save point

PlayerData now correctly loads and saves location data for the player.
This commit also adds a complete ‘load’ scenario using the ‘Load Game’
option in the menu.

To facilitate the ‘load’ scenario, had to fix the PlayerCharacter to
refresh its sprite more consistently. Everything else loaded in
correctly. :)

Although saving is theoretically possible right now, there is no way of
manipulating the save point data to write new location data. This will
come in with a future commit.
Simplify STL container iteration where appropriate

C++11 provides mechanisms such as auto and for-each that we can use
instead of the clunky iterator syntax. Cleaned up a few iterator
references to make them easier to read.
Pathfinder fixes and cleanup

Issue: Pathfinder RFW algorithm causes game to freeze up for several
seconds while loading a new map
Fix: Push RFW calculation to a background thread. While it isn’t ready,
fall back to A* pathfinding with Manhattan heuristic.

Issue: A* pathfinding no longer works.
Fix: Pass the Entity Grid by reference instead of by copy, so the A*
algorithm searches on the correct grid. Since the best path is tracked
by node memory addresses, we have to allocate A* nodes on the heap so
that the addresses remain valid.

Along with this change, reworked the Pathfinder to improve readability:
- Factored out RFW algorithm processing into a helper class.
- Moved adjacent point calculation out of Point2D and into Pathfinder,
since it is only useful there.
- Reorganized functions and signatures in Pathfinder for better
readability (particularly evaluateAdjacentNodes, which took a large
number of parameters and now takes a few less).
Fixed bug where outside2 map was crashing

ScriptFactory now logs errors and returns nullptr for missing/malformed
script files instead of attempting to load them and simply failing.