Quicksettings: Avoid possible NPEs & improve controllers handling

Controller patch based on Clark Sheff's one: recreate controllers at start() only.
https://github.com/CyanogenMod/android_frameworks_base/commit/e95bc124c629cef485bb7ac4ce55137bf500f772

Shutdown all controllers and nullify quicksettings when recreating status bar
view at makeStatusBarView() before a controller and/or mQS instance is called.

Contributors:
@linuxman94
@BigBrother1984

Signed-off-by: Evan Anderson <evan@thelinuxman.us>
Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>
Change-Id: I607dacf79f09fe208d481435cba8ca8c072758d6
Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
Quicksettings: Update all of the battery tile, not just mModel refresh

Change-Id: I9a5dfb0d13245c8151e24ddec2cf5c6636bc4580
Signed-off-by: Evan Anderson <evan@thelinuxman.us>
Quicksettings: Fix battery tile showing 0% in certain conditions

Battery tile would show 0% sometimes because
the callback isn't sent until battery was updated.

Instead we store state via global variables and force
the first update.

Also includes simplification of code.

Change-Id: Ia346c883308cbdab5a7cccdbd579e4d605b831e8
Signed-off-by: Evan Anderson <evan@thelinuxman.us>