Cleaning up task loading code.

- Moving all references of SystemServicesProxy and RecentsTaskLoader to
  a single static instance in Recents.  This ensures that we only refer
  to an instance that is created with the application context.
- Moving ActivityInfo cache into RecentsTaskLoader with the other caches
  which allows us to invalidate it less frequently.  This requires the
  loader to handle package changes to invalidate the cached infos 
  accordingly.
- Cleaned up old code to handle case where the Recents component for
  secondary users might not be initialized (fixed in ag/773159)
- Moving the package monitor to the background thread.
- Cleaning user interaction and visibility changes to events.
- Fixed issue with sending events from binder thread.

Change-Id: Ie785347055736f6dd7802f32454f77073e20b83e
20 files changed