shared/gatt-client: Fix bug in service changed handling.

This patch fixes a bug where the upper layer never got notified of a
service changed event if no new services are added within a changed
service range. This also fixes a bug where an empty changed service list
or ATT error caused pending service changed events to not get processed.
shared/gatt-db: Fix range handling in read by grp type.

This patch fixes bug in gatt_db_read_by_grp_type in which the range end handle
was being ignored. This caused incorrect results to be sent for a database
where services exists beyond the end handle provided in the request.
shared/gatt-server: Add functions for sending notifications/indications.

This patch introduces new functions for sending notifications and
indications as a GATT server.
TODO: shared/gatt-server notifications done.
tools/btgatt-client: Print prompt on service changed.

The service changed handler now prints the command line prompt if the
changed service list empty.
tools/btgatt-server: Introduce btgatt-server.

This patch introduces tools/btgatt-server, which is a command-line tool
for testing and debugging shared/gatt-server.
tools/btgatt-server: Accept incoming connection and initialize server.

This patch adds code that listens for incoming connections and creates a
bt_gatt_server and bt_att structure once a connection is accepted.
tools/btgatt-server: Populate the database.

This patch populates the GATT database with the GAP and GATT services.
Also added is a custom test service template.
tools/btgatt-server: Add command support and the notify command.

This patch adds a command REPL and introduces the "notify" command which
allows sending notifications and indications.
tools/btgatt-server: Add Heart Rate service simulation.

This patch adds a Heart Rate service to the database which simulates a
fake Heart Rate service implementation. The service can be enabled by
default by passing the '-r' flag to the executable.
tools/btgatt-server: Add "heart-rate" command.

This patch adds the "heart-rate" command which can be used to hide
or unhide the Heart Rate service. This is useful for testing service
changed events.
tools/btgatt-client: DO NOT SUBMIT: Added "att" command for testing.