audio/AVCTP: Add keys that can be mapped to uinput

This adds the remaining AV/C keys that can be mapped to uinput.
audio/AVCTP: Lookup key name from key_map table

The key_map table already contain the key name.
android/A2DP: Fix invalid read

Invalid read of size 8
   at 0x30EE465A78: g_slice_free_chain_with_offset (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x418209: bt_a2dp_unregister (a2dp.c:1576)
   by 0x4039E6: main (main.c:347)
 Address 0x4f2d248 is 8 bytes inside a block of size 16 free'd
   at 0x4A07577: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x30EE44EF7E: g_free (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x30EE4655CA: g_slice_free1 (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x30EE465F0C: g_slist_remove (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x41645F: a2dp_device_free (a2dp.c:174)
   by 0x30EE466477: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x30EE46649A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x418209: bt_a2dp_unregister (a2dp.c:1576)
   by 0x4039E6: main (main.c:347)
android/AVRCP: Fix possible invalid read

Like in A2DP case it is not safe to call g_slist_remove within
g_slist_free_full callback.
android/hidhost: Use g_slist_free_full to free devices list

Calling g_slist_remove within the callback of g_slist_foreach is very
inefficient as it has to iterate twice in the list to figure which
element to remove.
android/pan: Use g_slist_free_full to free devices list

Calling g_slist_remove within the callback of g_slist_foreach is very
inefficient as it has to iterate in the list twice to figure which
element to remove.
android/client-audio: Fix not stopping play thread on write error
profiles/network: Use interface name passed to bnep_connadd
profiles/network: Allow to pass interface name to bnep_new
android/pan: Move functions up to avoid forward declarations
android/pan: Fix unregistering NAP bridge

This fix not removing NAP bridge in case of error or last device
disconnect.
android/pan: Fix bnep interface name

Android uses bt-pan static interface in PAN profile. In server role
it uses it as bridge name. But current implementaion passes interface
names like bnep0, bnep1... Android Framework is unaware of this name
and unable to allocate IP address after profile connection setup.
android/pan: Use ioctl instead of sysfs for setting forward delay

Using sysfs is causing problems due to filesystem permissions
(bluetoothd is running as bluetooth user) and bluetoothd already has
required capabilities for setting forward delay through ioctl.
android/pan: Pass error in nap_remove_bridge

Don't return EOPNOTSUPP but just pass error from errno.
android/pan: Bring bridge interface down before removing it

Otherwise bridge will be 'in use' and won't be removed.
android/haltest: Close file in case of error
health: Fix HealthDevice dbus registration

For some reason, HealthDevice property table wasn't been registered.
btsnoop: Remove unused local function and macro
hcitool: Fix memory leak in cmd_info

Free memory pointed by cr variable after it is used.
hcidump: Fix memory leak

Memory pointed by frm.data variable was not freed in both failure and
success flows.