obexd/client: Fix calling g_obex_cancel_req for completed requests

This leads to incorrect responses such as the following:

> ACL data: handle 12 flags 0x02 dlen 26
    L2CAP(d): cid 0x0041 len 22 [psm 3]
      RFCOMM(d): UIH: cr 0 dlci 38 pf 0 ilen 18 fcs 0xfd
        OBEX: Get rsp(f): status 200 len 18
        Status 200 = Success
        Connection ID (0xcb) = 1
        App. Parameters (0x4c) = Sequence length 4
        End of Body (0x49) = Sequence length 0
< ACL data: handle 12 flags 0x00 dlen 11
    L2CAP(d): cid 0x0040 len 7 [psm 3]
      RFCOMM(d): UIH: cr 1 dlci 38 pf 0 ilen 3 fcs 0x27
        OBEX: Get rsp(f): status 715 len 3
gobex: Fix being able to cancel completed requests

This fixes bogus responses when rsp_func calls g_obex_cancel_req for
responses with final bit set.
android/gatt: Change name of gatt_primary in service structure
android/gatt: Add flag primary to struct service

Since we are going to use this struct also for included services lets
add here flag saying if this is primary service or not.
android/gatt: Add helper functions to send all primary services

This patch adds helper functions to send all the primary services.
This will be useful for following patches where we want to send to
client cached data.
android/gatt: Use cached primary services if possible
android/gatt: Add create_device helper function
android/gatt: Add list of disconnected device

This patch add disconnected device list. It is in order to not lose
the cache if we disconnect from LE device.

Once device is disconnected we move it to disc_dev_list. When Client
wants to connect we first check if we know device, if so we use it.
android/gatt: Minor change in get_include_data

Change service to prim so it is more readable that this is primary
service
android/gatt: Add msg size check for get included service
android/gatt: Prepare to cache included services

With this patch struct service is enhanced to handle caching include
services
android/gatt: Add helper function to create_service

This function will be useful when we start cache also included
services
android/gatt: Cache include services

This patch adds caching included services.
Note that included service in put on two queues.
1. On main services queue on the device, together with primary services.
2. On special queue inside the primary service.

We need 1) to have easy search of service when Android framework request
for characteristics etc.

We need 2) to handle iteration on included services done by Android
framework for a given primary service
android/gatt: Add helper to send included service
android/gatt: Change label name from failed to reply

Next patch will use this label in success case therefore let's change
this label
android/gatt: Use cache for included services

We should used cached included services as ofter as possible

This patch do bit refactor of handling included service.
Removes some unsed helper functions used to match in queue.
Also moves up find_service function as it is need now higier in the
code.
android/gatt: Fix instance id for primary and included service

Since there might be multiple services with same uuid, we should
make sure that each primary and included service has unique instance
id.

This patch adds this.
tools/obexctl: Add support for listing phonebook size

This adds option -l which in case of PBAP will use GetSize before listing
the contacts of the current folder.
gobex: Fix asserting one more time

This fixes a regression caused by 35938b779dc8d2498e66e6a6483a36c1f99c2e19
where the current pending_req is set to NULL while processing the
response but cause the request to timeout since it is no longer removed
properly.
android/pts: Bump PTS version for A2DP