Change how the attributes are stored in the iio_channel structure

Instead of having a dynamic array of (char *) pointers, we now have a
dynamic array of (struct iio_channel_attr) structures. This will allow
to store information related to those attributes more easily.

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
Memorize the filename of channel attributes in iio_channel_attr

Previously, the filenames were stored only in the private structures of
the local backend, and were not available anywhere else.

This change makes the local backend store the filenames in the
iio_channel_attr structure, which is visible by all backends. The XML
generation functions were altered, and the XML backend was modified so
that the information is available directly in the context
sub-structures, independently of the backend used.

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
Added API function iio_channel_attr_get_filename

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>