build: Add coverage support

Coverage is enabled with --enable-maintainer-mode, 2 new targets are
added 'coverage' and 'clean-coverage', the first generate the reports
using lcov and depend on the second to cleanup previous generated
reports and .gcda files.
unit/test-queue: Add /queue/foreach_remove test

This tests queue_remove from queue_foreach callback.
unit/test-queue: Add /queue/foreach_remove_backward test

This tests queue_remove from queue_foreach callback in backward order.
shared/queue: Add reference counting to entries

This makes queue_foreach much more efficient when tracking if the next
entry was remove by the callback.
unit/test-mgmt: Add /mgmt/response/1 test

This tests if a success response can be received.
unit/test-mgmt: Add /mgmt/response/2 test

This tests if an error can be received.
unit/test-mgmt: Add /mgmt/event/1 test

This tests if an event can be received.
unit/test-mgmt: Add /mgmt/event/2 test

This tests if multiple events can be received.
unit/test-mgmt: Add /mgmt/unregister/1 test

This tests if mgmt_unregister_all can be called within event callback.
unit/test-mgmt: Add /mgmt/unregister/2 test

This tests if mgmt_unregister_index can be called within event callback.
unit/test-mgmt: Add /mgmt/destroy/1 test

This tests if mgmt_unref can be called within event callback.
shared/mgmt: Remove unnecessary code

This flags were added because calling function like queue_foreach were
not safe as the callbacks may remove or destroy the queue before
returning but this has been fixed and it is now safe to do that.
doc/test-coverage: Update test count
core: Fix endian bug with read info settings
android: Use shared helpers for endian conversion
monitor: Add support for decoding resolving list related commands
emulator: Add support white and resolving list commands
monitor: Fix constants for default data length commands
emulator: Add support for LE data length commands
monitor: Add support for resolving list enable and address timeout commands