[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>
Again, code in `HandleAdd*()` are pretty similar, suggest use one function so that you can avoid duplicating same logic in following five functions:

    void HandleAddRemoteDeviceSelectedListener(const picojson::value& msg);
    void HandleAddCallHistoryEntryAddedListener(const picojson::value& msg);
    void HandleAddCallHistoryChangedListener(const picojson::value& msg);
    void HandleAddContactsChangedListener(const picojson::value& msg);
    void HandleAddCallChangedListener(const picojson::value& msg);

Same applies to `HandleRemove*()`