[Phone] Added IVI Phone support

This extension implements the phone interfaces for IVI using phoned.
It replaces the existing wrt-plugins-ivi-hfp used by Modello home screen.

It implements the following api:

- selectRemoteDevice()
- unselectRemoteDevice()
- getSelectedRemoteDevice()
- invokeCall()
- answerCall()
- hangupCall()
- activeCall()
- muteCall()
- getContacts()
- getCallHistory()
- addRemoteDeviceSelectedListener()
- removeRemoteDeviceSelectedListener()
- addCallChangedListener()
- removeCallChangedListener()
- addCallHistoryEntryAddedListener()
- removeCallHistoryEntryAddedListener()
- addCallHistoryChangedListener()
- removeCallHistoryChangedListener()
- addContactsChangedListener()
- removeContactsChangedListener()

Signed-off-by: Jimmy Huang <jimmy.huang@intel.com>
Could you merge similar logics into a simple function?

For example it is possbile to change following:

    g_dbus_connection_call_sync(g_bus_get_sync(G_BUS_TYPE_SESSION,
                                               NULL,
                                               NULL),
                                        PHONE_SERVICE,
                                        PHONE_OBJ_PATH,
                                        PHONE_IFACE,
                                        "GetSelectedRemoteDevice",
                                        NULL,
                                        NULL,
                                        G_DBUS_CALL_FLAGS_NONE,
                                        -1,
                                        NULL,
                                        &error);
    //...
  
    g_dbus_connection_call_sync(g_bus_get_sync(G_BUS_TYPE_SESSION,
                                               NULL,
                                               NULL),
                                PHONE_SERVICE,
                                PHONE_OBJ_PATH,
                                PHONE_IFACE,
                                "Answer",
                                NULL,
                                NULL,
                                G_DBUS_CALL_FLAGS_NONE,
                                -1,
                                NULL,
                                &error);
    //...
  
    g_dbus_connection_call_sync(g_bus_get_sync(G_BUS_TYPE_SESSION,
                                               NULL,
                                               NULL),
                                PHONE_SERVICE,
                                PHONE_OBJ_PATH,
                                PHONE_IFACE,
                                "Hangup",
                                NULL,
                                NULL,
                                G_DBUS_CALL_FLAGS_NONE,
                                -1,
                                NULL,
                                &error);
  
into

    dbus_call("GetSelectedRemoteDevice", &error);
    //...
    dbus_call("Answer", &error);
    //...
    dbus_call("Hangup", &error);