[2/2] Settings: Battery Saver mode

introduce battery saver mode
this based from what user want or what user do to saving the battery life
this include:
1. Automatically switch mobile network into what user choice and also disable mobile data IF wifi connected to an AP
2. Automatically switch mobile network and disable mobile data IF battery low (battery level can configure)
3. Reduce screen brightness based low battery (this feature will disabled if Auto brightness mode enabled)
4. Not changing network IF on Call or Usb tether enabled or WifiAP enabled
5. Not changing network IF there is Download/upload progress
6. Support For Both GSM and CDMA devices (need someone to test for CDMA devices)
7. every condition has an option :D
8. Restore all network configuration if battery saver mode disabled
9. Add Time Range to start battery saver mode
10. allow device without mobile data support, to using this feature
11. fix inconsistent battery low level
12. rewrite to better performance
13. modified the controller to support battery saver mode
14. add bluetooth, gps, wifi, and mobile data (if support) to be disabled while power saving activated
15. fix build QuickSettings because of LocationController change
16. rewrite to better performance
17. fix brightness value
18. rewrite (again) to allow add more saving mode
19. do delay changing only for POWER SAVING not NORMAL mode
20. add Cpu power saving mode
21. fix Cpu freq value
22. fix call saving state for non user configuration mode
23. fix NPE
24. add kill all task
25. add disable sync

Conflicts:
	res/values/custom_strings.xml

Change-Id: I19502c731b74e82a3873f19f51965ee5a88c1f04

Conflicts:
	AndroidManifest.xml
	res/values-ru/cm_plurals.xml
	res/values/chos_dimens.xml
	res/values/mahdi_arrays.xml
	res/values/mahdi_attrs.xml
	res/values/mahdi_strings.xml
	src/com/android/settings/ThemeSettings.java
	src/com/android/settings/cyanogenmod/NEWSeekBarPreference.java
	src/com/android/settings/fuelgauge/PowerUsageSummary.java