libiio: Allow devices to specify that bits above the MSB are fully defined

Some devices which have less significant bits than the number of storage
bits (e.g. 14-bit data in a 16-bit word) still properly initialize the
bits above the MSB. For unsigned data this means the bits will be set to 0
and for signed data the bits will be set to the extended sign bit.
Having this information allows userspace applications to skip the step of
having to perform a manual sign extension or masking of the upper bits.
Especially when processing larger quantities of data this can improve
performance. This patch introduces two new sign specifiers for the
scan element type to allow drivers to describe this behavior.
A uppercase 'S' will be used for fully defined signed words and a
uppercase 'U' will be used for fully defined unsigned words.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>