add SOUND:IsTimingDelayed method and fixed SOUND:PlayMusicPart

PlayMusicPart does not immediately start the new music. IsTimingDelayed
will return true until the new music has started.

The "applyRate" argument of PlayMusicPart was being applied to the
"align_beat" property. Added an additional argument to for "align_beat"
and made "applyRate" work properly.
Merge pull request #230 from sigatrev/GameSoundManager

add SOUND:IsTimingDelayed method and fixed SOUND:PlayMusicPart
Changed CheckEnum to use lua_isnoneornil so that enum args can be made properly optional.  Changed PlayMusicPart to allow nil for optional args so optional args would be independent.