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
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
no need to copy an ItemStorage here, this is probably optimized out by gcc/mingw but in MSVC this crashes the program when compiled: as it is the temporary ItemStorage is destructed without having its init() called first
Merge pull request #435 from josephbleau/bugfix

no need to copy an ItemStorage here
Fix crash from holding down MAIN1 while loading a map
Merge pull request #436 from dorkster/bugfixes

Fix crash from holding down MAIN1 while loading a map