shared/gatt-client: Allow populating without discovery.

We need the ability to construct a shared/gatt-client from storage if
we're bonded with a remote device, so that we can reduce the number of
ATT requests by avoiding service discovery. This patch provides an API
to construct a bt_gatt_client using a pre-populated service list
structure.

A new argument has been added to bt_gatt_client_new which is
a pointer to a new opaque list structure "struct bt_gatt_service_list".
If NULL is passed, then bt_gatt_client will perform service discovery.
Otherwise, it will take ownership of the contents of the list and skip
discovery entirely.
DO NOT SUBMIT: For testing bt_gatt_service_list.