policy: fix menu key for devices with no physical menu key

Initialize key behaviour correctly for the case where the respective key
isn't present in hardware.

Change-Id: I424f879dcf5e09c0897d7ebf7646efe36661d108
Fix virtual key press detection.

Virtual key events can be injected from anywhere, not just
PhoneWindowManager.

Change-Id: Ia9529c6534a208bf713912fc63f81a016754c6a6
AudioService: Go back to virtual SCO calls on multi-function units

Direct raw audio channels to these HFP devices is resulting in
dead audio on hangouts, on all devices. Until that is figured
out and/or fixed, go back to establishing a virtual call to open
up the audio channels

Change-Id: I794e75eed96ac09cfbb1c9d28c90d3161cfb7149
Framework: Fix blacklist support

Copy & Paste isn't a good friend for programmers ;)

Change-Id: Ic6ab81462530f614b9e896cb098590241accb192
Fix ringer mode being unneededly changed by setting ringer mode volume to 0.

When having set the ringer mode to silent on a device with vibrator and
calling setStreamVolume() for the ringer stream again (e.g. in one of
the volume control dialogs in the settings app), the ringer mode is set
to vibrate, although there's no reason to do so.

Fix that by remembering the last non-normal (that is, either silent or
vibrate) ringer mode and using that when setting the stream volume to 0.

Change-Id: Idb4a34743c0db5da61b3354889212fbdc9e3ee81
JIRA: CYAN-1403
Merge "Framework: Fix blacklist support" into cm-10.2
Merge "policy: fix menu key for devices with no physical menu key" into cm-10.2
Merge "Fix virtual key press detection." into cm-10.2
Merge branch 'cm-10.2' of git://github.com/CyanogenMod/android_frameworks_base into cm-10.2

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java