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.

Patch Set 7: Circumvent the need for "keyboard.orientationAware = 1" idc
Patch Set 8: Don't leak implementation details outside InputReader

Change-Id: I19cc60cb0acb0005ab13fa069f52e3d468d694e7
Rework thumbnail handling

Since ids of media file are usually not continuous, the original file of thumbnail are
sparse. When there are big numbers files on ex\
ternal storage, the size of this file will be horrible.
Ex, when the id is 20000, then the .thumbnails/.thumbdata3-xx file will be 50000*10k = 488.28M.
Can refer http://stackoverflow.com/questions/12396715/android-huge-thumbdata4-file-in-dcim-folder
Because after 4.0, MediaProvider will scan any files, this will be a big problem. So I modify MiniThumbFile.java to avoid this.
According to the id, we now produce an index file. In this index file, one id will use BYTES_PER_MINTHUMB_INDEX(8) bytes in offset (i\
d+1)*BYTES_PER_MINTHUMB_INDEX. The data of these 8 bytes is the index of thumbnail file. The first BYTES_PER_MINTHUMB_INDEX bytes kee\
p next available index. And when you need insert a thumbnail, the index increase by 1. In this way, the block data in thumbnail file \
will be continuous. And thus unnecessary zero paddings will not be saved.

Change-Id: I66005dd69b0a5c8f4353bd7a8225d163a654fd2d
Fix status bar brightness control when on secure lock screen

When the notifications panel is disabled no views are handling touch events
on the status bar, so we see nothing beyond each ACTION_DOWN. Intercept touch
events when needed specifically for brightness control.

Also recycle VelocityTracker when we're not using it, as per its documentation.

Change-Id: I84d4c788bcdb1e05244710aca933d97e3e60d1b5
Merge "Re-implement orientation aware volume buttons at lower level" into cm-10.1
Navbar: Fix MDPI & HDPI landscape layout

Before: http://i.imgur.com/89SmFbX.png
After: http://i.imgur.com/UbuAggD.png

Change-Id: I6623cb97881313886de39a67baa98f7bd4b0696a
Correcting NULL pointer when callerApp is not set

Change-Id: I7252479f4e456aa9da4678dce40f77c60629d469
Merge "Fix status bar brightness control when on secure lock screen" into cm-10.1
Merge "Navbar: Fix MDPI & HDPI landscape layout" into cm-10.1
Merge branch 'cm-10.1' of https://github.com/CyanogenMod/android_frameworks_base into cm-10.1