Cleanup and improve ringer tile code.

Handle absence of vibrator properly by excluding the respective modes
from the selection in that case.

Change-Id: I63d1fc06cbbcadadff51866b929dde453f4eb4bd
Merge "Cleanup and improve ringer tile code." into cm-10.2
merge changes from CyanogenMod 10.2 into local branch
Merge remote-tracking branch 'upstream/cm-10.2' into cm-10.2