Documentation: Movable + code fix

Started adding documentation for the Movable class.
Clean up: removed old ladder flags in Hero
Added GameConfig class, started integrating
Added ability to enable/disable audio service
Changed "ladder top" to "platform"
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.
Merge pull request #107 from zackthehuman/master

Small enhancements, clean up, soft-coding changes, added Shot and started integration