Improve resilience of volume change.

Building on the previous fix for the audio volume jumps experienced
when switching tracks, this adds a double check that the underlying audio
layer has actually set the volume to the new value. This may fail because
the COMXAudio object it not yet initialised.

If there is a failure, then the volume change is retried in the next
iteration of COMXPlayer::Process().
Merge pull request #2909 from sgebbie/master

[rbp/omxplayer] Volume Jump Fix
[rbp/omxplayer] Fix build error from #2909

(sorry should have spotted this)
Merge pull request #2910 from popcornmix/fix_volume_fix

[rbp/omxplayer] Fix build error from #2909
Fix memory leak and a failed ASSERT under win32 Debug build. A string was being double-strdup'ed, causing delete[] to fail when deleting the copy from the different heap instead of the local one.

Tracking down the assert to dbgheap.c gives the following message:
> a bad pointer has been passed in. It may be totally bogus, or it may have been allocated from another heap. The pointer MUST come from the 'local' heap.
[fix] check active window before delegating player action handling - fixes problem introduced in 8768ec8a7260b7dd46c28e601a398d493808edeb
[cosmetic] suppresses gcc parenthesis warning. Thx @vdrfan
keymap: fix sixaxis gamepad keymapping

Values below starting at 256 are reserved for KEY_BUTTON_*,
use some other unused key id for the GUIDE button. This button
is only virtual since it's mapped from a CEC event