framework: Privacy Guard

 * Introduce a new privacy feature which allows the user to run an
   application with reduced visibility into his or her personal data.
 * Adds a per-application flag and simple API to determine if this flag
   is enabled for the current or calling process.
 * This flag can be used by content providers to decide if they should
   return a limited/empty dataset.

Change-Id: Id7c54d728e63acb2b02a2a9322930b54949f6c5d

PS2:  TONS of cleanup...OMG!
PS3:  OK, NOW I got it.  SOB
PS4:  Steve has since made a change to the blacklist handling.  I just
      added this new change into this commit.  Only changed 2 files.

      This was the added commit:  http://review.cyanogenmod.org/#/c/44748/

      Quote from Steve
      * Google has built a per-package blacklist into the location service.
      * Let's use this to handle Privacy Guard instead of our one-off code
        which has a bunch of edge cases and can leave apps in a weird state.
PS5:  Added in Daves @hide additions.  Try to keep work on the same feature
      under the same commit.  Makes things MUCH easier to work with.
PS6:  Removed previous additions.  Available in seperate commit.
PS8:  Added CM's NPE and notification display fixes
       - NPE:                     http://review.cyanogenmod.org/#/c/44955/4
       - Notification display:    http://review.cyanogenmod.org/#/c/44818/2

Change-Id: Id7c54d728e63acb2b02a2a9322930b54949f6c5d
Merge "framework: Privacy Guard" into jb42