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
Frameworks: reenable all keyboard features for 3rd party keyboards

use like quickpeek statusbarservice for it.
Gives us as well for other future features more
flexibility

Change-Id: I1e9e2497212d27eacbbb63f64961361aaed9aee7
Frameworks: do not depend on quick_settings_num_columns value

the overlay handling from google does not really make sense
and brought us already on 4.2 on weird behaviours sometimes.
Due that we have included tiles per row and duplicate feature
it makes sens to only depend on the values which are programmatically
set. As well I did not find one device or theme which manipulates
the mentioned values.

So let us do it all programmatically and the weird behaviours are
a problem of the past

cheers

Change-Id: I4ce7c5e9c30377983e61880315f60bfbd886a8a4