[1/2] Base: NavigationBar customization

Includes:

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

- Navbar : Rework logic for determining orientation
  This patch introduces better checks for hybrid ui's.
  This should fix issues of small buttons due to incorrect ui determination
  Thanks Rolf Arne Schulze for testing :)
  Id: If5b61dc4764a98deedb5b801d11451fed2488cba

- Make navigation bar ready for per-user configuration.
  Also clean it up a bit.
  Id: Ic10bd161fce53bf30048a0cb927dcf1e2bfa7774

- Fix layout on N10
- Remove uncessary padding and logic
- Phone fixes
- Phone padding fixes

PS6: Added RTL support (http://review.cyanogenmod.org/#/c/55059/)
PS7: Navbar: Fix MDPI & HDPI landscape layout (http://review.cyanogenmod.org/#/c/56098/)

OmniGears part: https://gerrit.omnirom.org/#/c/3156/

Conflicts:
	core/java/android/provider/Settings.java
	packages/SystemUI/res/values/custom_strings.xml

Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java

Change-Id: I5bcdd53e8344e8ce137088544a4a3964655c53af