emulator: Store LE advertising data length in btdev

LE advertising data length will be used for emulating reports in other
virtual devices.
emulator: Implement basic LE set adv enable command

Store advertising state of virtual controller in btdev struct.
emulator: Store LE scan state of virtual controller

The LE command set scan enable can change the scan state of virtual
controller.
emulator: Disallow LE set scan params command when scan is enabled

When LE scan is enabled, the command LE set scan parameters should
return a command disallowed in status of command complete event.
emulator: Dummy LE set advertising parameters

Implement basic LE set adv parameters command.
emulator: Implement LE advertising report

When a virtual device starts a LE advertising, emulator searches for
other virtual devices that are in scan mode, in order to send adv data
to these devices.
Inverse goes when LE scan is enabled. Emulator searches virtual devices
that are in advertising mode and copy adv data to them.
audio/sink: Fix not notifying service about connection state

btd_service_connecting_complete should be called whenever the service
is connected otherwise the service state will not be consistent.
audio/source: Fix not notifying service about connection state

btd_service_connecting_complete should be called whenever the service
is connected otherwise the service state will not be consistent.
obexd/client: Add Target property to Session interface

Target property is already documented property but it was not
implemented.
lib: Add range check for SDP_SVC_ATTR_RSP/SDP_SVC_SEARCH_ATTR_RSP

This is an improved version of recently reverted commit 1796f00e8465.
Response size is verified against minimal allowed value only if it is
complete response. If response is partial it is allowed by spec that
it will be split in arbitrary manner.

Verified against Nokia BH217 on which original commit caused
regression.
core/service: Rename service_shutdown to service_remove

This rename service_shutdown to service_remove to make it more similar to
other internal APIs such as device_remove which only do object
cleanup/free and do not have any disconnect logic.
core/device: Fix crash while freeing services list

btd_service do alter its state on service_remove which can cause
plugins to attempt to access services list which may have freed some
services already.

To fix this the code now updates the list in place so the services are
first removed from services list before calling service_remove.
core/device: Don't call btd_service_disconnect on device_remove

device_remove is called to cleanup/free the device objects so the
services should be disconnected before hand.
core: Fix incorrectly restarting service discovery after pairing

If services are already discovered through a Device1.Connect() call we
should not retry discovering them when Device1.Pair() is called.
core: Remove profile removal detection

This code has been nonfunctional since 5.0 and it seems no-one cares for
it, so just remove it.
core: Use g_dbus_send_reply over dbus_message_new_method_return
core: Set low priority for SDP data

In the case that there are other channels over the same ACL we want SDP
transactions to interfere as little as possible.
core: Remove unused reverse parameter from device_browse_sdp
core: Remove unnecessary secure paramter from device_browse_primary
core: Implement passive SDP discovery after connecting known services