Allow navbar on hardware key devices, and overhaul immersive mode overhaul

This the commit formerly known as http://gerrit.aokp.co/#/c/15748/ by Brandon McAnsh <brandon.mcansh@gmail.com>

... now with a facial tattoo, a baseball bat, and a bigger dick.

PS2: remove removePreference from systemuisettings.java for devicekeys > 0
PS3: Show navring settings ALWAYS
     relocate switch to system_ui_settings
     conditionally enable navbar prefscreen based on value
PS7: rework for immersive mode visibility changes
     rework immersive mode settings changes for THIS too
     use array resources instead of generating an arraylist and returning an array of charsequences
         ... like a BAUSS
PS8: correct detection of the case where a selectedValue (immersiveStyle == 3) would be invalid
         after disabling the navbar on a device with hardware keys (only has values: 0,1,2)
PS9: save some state so a settings get is not necessary when validity-checking immersiveStyle
         after the navbar state on a device with hardware keys changes
ps10: array length != method... sleep == ftl

Change-Id: I4e5bae40eeb8963fab008fead4c7e0797cca4fb9