GameConfig: added initial state and script paths

Also updated affected areas in Client.
Added more soft-coding to ClientConfig
Clean up: removed unused include / comments
Added "is[SIDE]Blocked" methods to Movable

This lets you know if in the current frame that side is blocked.
Clean up: FileSystem renamed method, added one

Added a "open for writing" method and renamed the "openFile" to
"openFileRead" to make it clear that it's only read access.
Changed ladder intesection testing (simplified)

Per Alex's suggestion, instead of checking for a 4px overlap with
ladders, I just made the ladders 4 pixels thinner on both sides and
check for any intersection. If there is intersection then you know for
sure you can mount the ladder.
Clean up: Hero

Small code cleanup
Fixed ladder climbing animation bug

Now the hero still appear to stop climbing when he climbs and hits a
wall on top. This is an edge case but it's annoying to see when testing.
Added Shot class for tracking weapon "shots"

A Shot can track the actions taken by a weapon (by actions, I mean any
GameObjects created as a result of executing the weapon).
Integrated Shot into Weapon and WeaponAction classes
Added list of Shots to Entity for tracking
Moved superclass ::update() call back to original place

I changed this trying to solve a problem, not sure if it has any side
effects so I'm moving it back since the problem is solved now.