New command line tool 'idmap'

Introduce a new tool 'idmap' to handle generation and verification of
idmap files. The tool is modelled on 'dexopt', and is intended to be
used similarly, notably by 'installd'.
See cmds/idmap/idmap.cpp for further documentation on 'idmap'.

Note: this commit is interdependent on a commit in project build/ to add
'idmap' to PRODUCT_PACKAGES.

Note: the changes to androidfw are only stubs. The actual implementation
will be provided in Runtime resource overlay, iteration 2.

Change-Id: I7131b74ece1e46c8a9c0a31d103e686aa07da2bb
Identicons: Add identicons to ChaOS Lab [1/3]

When enabled, new contacts will be assigned a unique
5x5 identicon as the contact photo instead of the boring
default one.

PS2:
Make Identicon an abstract class so we can use it to
create different types of identicons.  For starters
we'll use the github style in GithubIdenticon.  This
opens up the door to other types.

PS3:
Season with some salt.

PS4:
Use PNG format and tag it using an iTXt chunk before the
IEND to tag it with "identicon_marker" indicating it is
an identicon.  We can use this to identify if a photo is
an identicon and if so do what we want with it, like
removing identicons.

PS5:
We'll stick with JPG format and add a comment block to
the end.

PS6:
Better...stronger...faster.

PS7:
Add the dot matrix identicon

PS8:
Rename PolkaDotsIdenticon to DotMatrixIdenticon

PS9:
Clean up for release and add proper ChaOS Lab annotations.

Change-Id: I95fdca30686a2993ba5c2a9024a3cf5935b5d360

Conflicts:
	core/java/android/provider/Settings.java
GlobalActions: Fix Airplane Mode on/off issue

Issue: Unable to turn off Airplane mode from power button
       after phone reboot

Fix: Initialize mHasTelephony before the PhoneStateListener is
     registered to the TelephonyManager so that correct value
     of mHasTelephony is reflected when onServiceStateChanged
     callback is called.

Bug: 13697360
Change-Id: Ide8afd9c16ea90b98b5912dbff440c5fd67b178d

Conflicts:
	policy/src/com/android/internal/policy/impl/GlobalActions.java
Insufficient ProcessRecord cleanup when persistent process is killed

When persistent process with Service restarts, ActivityManagerService
does not reset ProcessRecord#hasClientActivites to false
(because ProcessRecord of persistent process is continued using
after killing).

It disturbs updating LRU list in ActivityManagerService, and then,
when new process calls ActivityManagerProxy#publishContentProviders,
SecurityException happens because of no entry in the list.

Bug: 13517358

Change-Id: I46b064f71a4f7025ade1bf117801352a7ab22e6a
Fix Identicons