Re-implement orientation aware volume buttons at lower level

Rework of http://review.cyanogenmod.org/31979

Fixes:
1. inconsistent volume button behaviour depending on app in use
   - the buttons were not swapped for some NDK/OPENSL ES apps like
   e.g. MX Player
2. the function of volume buttons on external input devices like BT/USB
   keyboards should not be affected by the main unit orientation

This commit finishes http://review.cyanogenmod.org/18273 - use of system
property has been replaced with config push via JNI as suggested during
the original review.

Please note that idc with "keyboard.orientationAware = 1" is required
for the built-in input device that provides the volume buttons.

Change-Id: I19cc60cb0acb0005ab13fa069f52e3d468d694e7