Split characteristic storage buffer in per-service buffers

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, instead of allocating a
128-entries buffer for all characteristics of the remote we now allocate
a 8-entries buffer per service and grow it with realloc if needed.