[1/2] NavigationBar Customization

- Allows user to customize navigation bar.
  Features :
   * Choose from 1-6 # of buttons
   * Re-arrange / assign buttons

- Navbar : Rework logic for determining orientation

PS2: Add DeviceUtils helper class from slimroms

Change-Id: Ifea7efdfe1374e71e617a113624c265938a524aa

Conflicts:
	core/java/android/provider/Settings.java
	packages/SystemUI/res/layout-ldrtl/navigation_bar.xml
	packages/SystemUI/res/layout/navigation_bar.xml
	packages/SystemUI/res/values/pa_strings.xml
	packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java

Conflicts:
	core/java/com/android/internal/util/paranoid/DeviceUtils.java
	packages/SystemUI/res/values/pa_strings.xml

Conflicts:
	core/java/android/provider/Settings.java
	packages/SystemUI/res/values/pa_strings.xml
	packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
SystemUI: NavbarEditor: Fix saveKeys logic

In landscape, the keys are saved backwards in the for-loop, but it would crash out due from
an IndexOutOfBounds error since it's subtracting i from the array length while i = 0.

Change-Id: I405c5d962d8c575cfee57b09a7e55a8a6efc2d24