Handle UCS-2 data coding scheme for SMS messsages.

Also, handle alpha format for SMS sender "number". Turns out carriers
sometimes use this instead of E.164 when they originate a message.

BUG=chromium-os:13617
TEST=Unit tests using data taken from actual messages sent from
a Russian carrier to a Russian handset.

Change-Id: I78db5fff784f0d1dc0381e60768c177b58b6d800

R=njw@chromium.org

Review URL: http://codereview.chromium.org/6740005
(cherry picked from commit 0c0da8fc0b8f875159cfd1ed7af53df58e8732b3)

Added an SmsMessage class, and code for parsing a PDU to an SMS message.

This includes conversion of text encoded in the GSM-7 alphabet
into a UTF-8 string.

BUG=chromium-os:11302
TEST=Wrote unit tests for GSM-7 to UTF-8 conversion and for construction
of SMS message from PDU. Also did live testing with a version of the
gobi plugin that supports the ModemManager.Modem.Gsm.SMS.Get method,
by sending actual SMS messages over the air to the modem and retrieving
them using dbus-send to invoke the Get method.

Change-Id: I26bb8bc764a9e7f4a81200740532e4874812f455

Review URL: http://codereview.chromium.org/6612044
(cherry picked from commit 8d9bc2d40988beaf5dcdd55fd6eaa301b30f21d6)

Review URL: http://codereview.chromium.org/6822060
(cherry picked from commit 1334ffa1e5b659ed324671c1a2a124e1dacd9abd)
7 files changed