Signal strength: add more checks to signal strength,

so it doesn't fall under the range of poor signal and automatically
assumes a gsm signal, actually checks if all values are true and not
valid then pass it on to lte or gsm. This fixes cases when gsm signal
is not valid and lte is active. When lte is active and shows a really
weak and gsm signal is not avalible due some broken vendor ril or
just running cdma lte and a few others senario creates this issue.

Change-Id: If9c5dc1a969605cd1eeb9218de02a9f8dbbd3ae1
Merge commit 'refs/changes/53/45653/6' of http://review.cyanogenmod.org/CyanogenMod/android_frameworks_base into cm-10.1
Allow whitelisted downgrades

Change-Id: Ia6d12597e5ef6aa293adfa7dbed0c9a38e03f97f