Telephony: Consider EVDO ecio zero value as valid.

When mEvdoEcio receives 0 getEvdoEcio returns -1.

Ecio valid values are positive integers, to fix this
consider EVDO ecio zero value as valid.

Change-Id: Ice8415150e7502c7f39e1a4135d35ea2bec1eb1f
CRs-Fixed: 402159
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 branch 'cm-10.1' of git://github.com/CyanogenMod/android_frameworks_base into cm-10.1