phone: Add option for setting device phone number (squashed)

Squashed commit of the following, with some more cleanup :)
(from gingerbread)

commit 53aaa90d95c83fff8f869c187cc291f51d3be6a6
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Thu Nov 24 12:01:03 2011 +0700

    Whitespace fixes

commit d98314c62fa371c7a8bbcda0d5221eb1b72cd639
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Tue Aug 30 23:15:07 2011 +0700

    Phone: Set MSISDN on boot from saved setting if SIM returned empty "My Phone Number"

    Some carriers don't set the MSISDN (My Phone Number) and CM remedied
    that by adding a setting in "Additional settings" in Call Settings
    which saves a new MSISDN to the SIM. However, some phones fails to
    save the MSISDN to the SIM and another remedy was added to set it
    every boot from the stored value. However, the current implementation
    only sets it if the framework returns a null value. This patch also
    sets it if the framework returns an empty string.

    Patch Set 3:
    - Fixed simstate checking as the intent extra is a string not an
      integer
    - Removed airplane mode checking as simstate will be triggered anyway

    Change-Id: If8875b841d2029be12f367ab6f309bbfb81fc330
    (cherry picked from commit 4045310b01b3c74fb06be69809f57be7d85dd32a)

commit 10959fc16e91bff31ed136fc609b6035777efacf
Author: Ricardo Cerqueira <cyanogenmod@cerqueira.org>
Date:   Sat Aug 27 00:35:25 2011 +0100

    Phone: Fix race condition in BOOT_COMPLETED intent

    BOOT_COMPLETED was triggering a read (and write) of SIM extra
    fields, regardless of whether the SIM was actually ready for it
    or not.
    If the boot happened to complete before the radio layer
    was ready, we were trying to do iccIO before we were allowed to.
    This resulted in errors for most phones, but on at least one it caused
    the whole iccIO interface to lock up until the next reboot (where the
    same would probably happen again)

    So... trigger the write with the SIM_READY intent itself instead of
    using BOOT_COMPLETED

    Change-Id: I027fab6000cae0ed94ea1513553d883fde99ca75
    (cherry picked from commit 495628ca2852aa5cde792f7c38f4b26ed8a6d2cf)

commit c9601d4df39cd2afbe2ffc864e5fe7a36c94ddd9
Author: Peter Fares <mrpeter05@gmail.com>
Date:   Wed Jan 19 02:00:38 2011 -0600

    Restore unknown phone number after toggling airplane mode

    Change-Id: I1a92422c3cddb93d356f2a28041df8550bee8f7a
    (cherry picked from commit c9639061dcc6ae167e736e5dbd34ede1621edaa1)

commit fe5042c3c29fb01bc6a4a3680b506840a8c36bad
Author: Jiri Tyr <jiri.tyr@gmail.com>
Date:   Sun Jan 16 23:52:01 2011 +0100

    Save phone numbert when entered and set it again when boot completed.

    Change-Id: Id51da585c9ceb5071bf49e880ddb12cd6f70023c
    (cherry picked from commit 9648847f060d8a267fa4600c9754e827b3b93550)

commit 32bc75569d6df75b14447c3215c0e29e7fe6d3f5
Author: Steve Kondik <shade@chemlab.org>
Date:   Fri Aug 20 19:35:17 2010 -0400

    phone: Fix case where MSISDN alpha tag is not set

    The new "My phone number" option was not being saved to the SIM because
    the alpha tag was not previously set. This change externalizes the
    preference code and defaults the alpha tag to "Voice Line 1".

    Change-Id: I15d4b08eeb026e0fdc32bebd7e315eed251061c9

commit 50a25fa4a0c11c4c00bd41094ae2796efe71123c
Author: Steve Kondik <shade@chemlab.org>
Date:   Sun Aug 15 20:19:42 2010 -0400

    phone: Add option for setting device phone number

    Change-Id: I4ce4ced23b3fa9803fae4f1725ef21b01a25e149

Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
Change-Id: I4ce4ced23b3fa9803fae4f1725ef21b01a25e149