> SlimHALO?

This is a basic port of Paranoid Android's HALO multi-tasking feature
adapted for Slim. This squashes tons of commits and fixes for comparibility
reasons as PA is vastly diff from Slim Base.

The original commit is as follows:
----------------------------------------------------------------------------------------------------

HALO [2/2]

HALO is one of Android's multitasking solutions.

We explicitly do not go the Samsung/Cornerstone route. This solution is basically an extension of
the regular notificationshade, which is an aggregator for notifications that can be checked out when
time permits. HALO completes it by allowing you to respond to tasks on the spot, trying to be as
unintrusive as possible and flexible in regards to policies (white/black lists).

Features:

- Apps open up in floating state, apps underneath do not pause
- complete SystemUI & Core integration, making HALO feel like a native feature, source/SDK and UI/UX
- HALO has white and blacklists, which for now allow fine control for apps pinging through HALO
- multiple gestures to navigate HALO:
  - double-tap-move: move
  - tap-drag-left/right: task through notifications, finger up launches
  - tap-drag-up: dismiss notification
  - tap-drag-down: put HALO into semi-hidden state
  - swipe while HALO is hidden wakes it up
  - drag-to-X to remove HALO altogether
- comes with as few settings as possible, everything should be self explanatory and intutive,
  users must be informed about the double-tap gestures which is the only catch.

----------------------------------------------------------------------------------------------------

HALO: Option to pause the underlying app [2/2]

- adds an option to pause the active app when using HALO
- this is enabled by default for devices with low memory
- (currently: <640MB RAM available to the kernel)

----------------------------------------------------------------------------------------------------

HALO: Option to hide from notification panel [2/2]

- adds an option to hide the HALO button from notification panel
- this is disabled by default and hence is just as normal

----------------------------------------------------------------------------------------------------

Reworked transparent layer

When a halo'ed window is opened, the transparent layer will be always visible.
It will manage the background dim. This fixes some apps dimming its sandboxed
processes (like chrome).

LayerActivity manages its own lifecycle. When it's focused after paused it finishes itself.

System processes (identified by "android" pkg in SystemUI and system uid in Activity)
don't use the layer and still use their own background. This has been kept this way
to not interfere with their activity.

----------------------------------------------------------------------------------------------------

Change-Id: I66ed774be96dfa90c0f21ec92dffaaceec1a6c8a

Conflicts: