Added API functions to create/destroy/fill/use iio_buffer structures

The iio_device_create_buffer function can be used to create an
iio_buffer structure that will be mapped to the corresponding device.

The iio_buffer_destroy frees the buffer structure.

The iio_buffer_refill function will update the iio_buffer structure
with fresh data from the device.

Finally, the iio_buffer_foreach_sample will call the provided callback
with a pointer to each sample corresponding to an enabled channel.

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
iio_readdev: Update to use the iio_buffer API functions

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