Make --game_data path always include trailing slash

Closes #418

This also adds an error message for when the path doesn't exist.
Don't add slash to USER_PATH_DATA if there is alreay one
Remove alot of logic from the audio subsystem callback which
removes the problem with audio threads modifying containers while
game thread iterates over it.

Fixes issue #425
fixed crash due to an anonymous ItemManager() being destructed without ever having been inited properly
Use parse_duration() for lifespan attribute of power def.
Fix post_power behavior for hazard powers
Merge pull request #429 from hean01/timeunit

Use parse_duration() for lifespan attribute of power def.
Merge pull request #419 from dorkster/bugfixes

Make --game_data path always include trailing slash
Merge remote-tracking branch 'upstream/master'
Merge pull request #427 from hean01/master

 Remove alot of logic from the audio subsystem callback which
Fix issue were env. sound plays on title screen.

This was introduced when moving logic from the audio callback
thread to logic(), which is in charge of stopping and freeing
sounds. Added call to snd->logic() from GameStateTitle to make
it cleanup it self.
Fixes a race were sound played is unloaded.

Solved this by moving last logics from the audio callback
handler to logic(). Also on reset(), force a cleanup call
to logic().
Merge pull request #432 from hean01/master

Fix issue were env. sound plays on title screen.
lmb attack now obeys MAIN1 lock
Merge pull request #434 from josephbleau/lockfix

lmb attack now obeys MAIN1 lock
Merge remote-tracking branch 'upstream/master'
added basic keyboard controls to gamestateload, uses mapped keys for movement/accept/cancel
Added TabList class which can be utilized anywhere to maintain appropriate keyboard control over widgets.
Title Screen now supports keyboard input.
Pressing cancel key-binding now exits game at Title Screen