Add helpers to handle UUID<->str conversion

We add two helper functions here. First one uuid2str converts bt_uuid_t
to a printable string, always on 128-bits format.
The second one do an inverse conversion: string to bt_uuid_t. We have
support to read 16-bits version (eg. 0x1234) and 128-bits.
Add search_svc command

With search_svc command, we can search services on remote device.
If we need a specific service, it's possible to filter by UUID that can
be 16-bits or 128-bits.
Add included command

After we find which services there are at remote device, we can
discover the relationship between them. The included command help us
with this, giving which services are included at specified service ID.
README: Add a limitations section

At limitations section, we can explain some limits that we have on the abtcl.
rl_helper: add support to tab completer

When tab is pressed, we make a starts-with comparison and return the first
command that matches.
Fix wrong prompt_state/r_bd_addr placement

The prompt_state and the r_bd_addr variables were wrongly placed as
global, but we can put them inside userdate structure.
As a side effect, we need to initialize prompt_state calling
change_prompt_state with NORMAL_PSTATE parameter.
rl_helper: add ctrl-d parsing

When we press ctrl-d, the terminal send us an end-of-transmission
command. So we can exit from program.
util: add atterror2str function helper

This function converts an ATT error in a human readable string.
Add characteristics command

With this command we can iterate over all characteristics of specific
service. The result will be handled at get_characteristic_callback.
Add characteristic storage buffer

This commit creates a service_info struct and a char_info struct. The
service info struct stores service information and a buffer of char_info
structs that will store information about characteristics of that
specific service. In the future the char_info struct will be extended to
store a buffer with information about the descriptors of that specific
characteristic.

The characteristics buffers grow on demand. We allocate a 8-entries
buffer per service and grow it with realloc if needed.
Add read-char command

This command do a read characteristic value of GATT. Is necessary to
pass a service ID and a characteristic ID. These values are accessible
running search-svc and characteristics commands, respectively.
Fix allocation bug of characteristics buffer

We need to allocate bytes as items multiplied by size of char_info_t,
but in realloc we were not doing this.
Better error response in characteristic callback

When status is 133 (0x85), we reached the last characteristic, so it's
not really an error.

Fix another small issue adding a break line when received an invalid
service ID.
rl_helper: add history command management

We need a growable buffer which will store a list of command strings. So
when we press up or down keys, our line buffer is replaced with old
commands that we typed.

This also fix a possible bug, when we pass a copy of line buffer to line
processing callback. So we will not have problems if we change its value
(eg strtok).
Add Write Characteristic commands

We are adding a generic write characteristic command with write_type as
parameter, so we are able to implement Write Command and Write Request
GATT operations.
Refactor get characteristics callback

Add a service_info_t pointer to access u.svcs[svc_id].
Fix buffer overflow in get characteristic callback

We are copying characteristic data before we have this space allocated.
Update ChangeLog for version 0.2