shared/gatt-server: Implement "Read By Type" request.

This patch implements the ATT protocol "Read By Type" request for
shared/gatt-server. Logic is implemented that allows asynchronous
reading of non-standard attribute values via the registered read and
read completion callbacks.
shared/gatt-server: Implement "Find Information" request.

This patch implements the "Find Information" request for the GATT
server role.
shared/gatt-server: Implement "Write" request and command.

This patch implements the "Write" request and command for the GATT
server role. Writes are delegated to the attribute's write handler,
which is also responsible for performing certain permission checks.
shared/gatt-server: Implement "Read" request.

This patch implements the "Read" request for the GATT server role.
shared/gatt-server: Implement "Read Blob" request.

This patch implements the "Read Blob" request for the GATT server role.
shared/att: Handle incoming confirmation PDU.

This patch adds handling of incoming confirmation PDUs to shared/att.
The code makes sure that there is a pending indication and notifies
the associated callback.

Also included is a fix that automatically disconnects the io if a
response is received while no request is pending.
shared/gatt-server: Add functions for sending notifications/indications.

This patch introduces new functions for sending notifications and
indications as a GATT server.
shared/gatt-server: Implement "Prepare Write" request.

This patch add support for handling ATT "Prepare Write" requests for the
server role.
shared/gatt-server: Implement "Execute Write" request.

This patch adds support for handling ATT "Execute Write" requests for
the server role.
shared/gatt-client: Fix alignment warnings.

This patch addresses warnings that arise when compiled with
-W=cast-align.
TODO: Update shared/gatt-server items.

shared/gatt-server has been introduced, so removed that item. Added new
items for remaining tasks.
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.
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.