Change type of SR_CONF keys to uint32_t.
Consistently use 'devopts' variable across all drivers.
Consistently use 'scanopts' variable across all drivers.
beaglelogic: Add missing scan options, and cleanup.
Publish config key capabilities.

Every driver now publishes its device option config keys, i.e. the
list fetched with sr_config_list(SR_CONF_DEVICE_OPTIONS), with a
set of flags indicating which methods are implemented by the driver
for that key.

The config keys are OR'ed with any combination of SR_CONF_GET,
SR_CONF_SET and SR_CONF_LIST. These are defined as the high bits
of the uint32_t config key. Clients can OR config keys with
SR_CONF_MASK to strip out these bits. This mask will be kept up to
date if other bits are added to the capabilities list; clients MUST
therefore use SR_CONF_MASK for this.

Some keys don't have capability bits added, such as the informative
device type keys (SR_CONF_MULTIMETER, SR_CONF_OSCILLOSCOPE, ...) and
SR_CONF_CONTINUOUS.

Scan options do not have capabilities bits.
yokogawa-dlm: Don't implement dummy scan options.
Typos and consistency fixes.
After AM_PATH_PYTHON, use PKG_CHECK_MODULES to find matching headers.
bindings: Tidy enums.py and fix to work with Python 3.
python: Fix C++/Python string conversions on Python 3.
serial_stream_detect: Make read nonblocking.

This code implements its own waiting based on baudrate, so the read itself
should be nonblocking. In general it will have been already, since drivers
almost universally use the SERIAL_NONBLOCK flag.
serial_readline: Implement using sp_blocking_read.
manson-hcs-3xxx: Mark serial read call as blocking.

This driver opens the port without the SERIAL_NONBLOCK flag, so this call is
already a blocking one.
colead-slm: Mark serial write call as blocking.

This driver opens the port without the SERIAL_NONBLOCK flag,
so this call was already blocking.
serial-dmm: Mark serial read/write calls as nonblocking.

This driver opens the port with the SERIAL_NONBLOCK flag so these calls were
already non-blocking.
serial-dmm: Remove SERIAL_NONBLOCK flag.

All serial read/write calls in this driver are now explicitly
nonblocking so there is no need for this flag.
agilent-dmm: Mark serial read call as nonblocking.

This driver opens the port with the SERIAL_NONBLOCK flag, so this call is
already a nonblocking one, and is handled appropriately.
agilent-dmm: Make serial write call block in scan.

This call is executed at scan time so is free to block. There is no
handling for a partial write and a response is expected immediately
afterwards. It should therefore be a blocking call.
agilent-dmm: Make serial write call block in send.

This call is executed from an event handler context was previously
nonblocking, however there is no handling for a partial write.

The output buffer is unlikely to be full and the commands to be sent
are short, so it should be OK to make this a blocking call.
aglient-dmm: Remove SERIAL_NONBLOCK flag.

All serial calls in this driver are now explicitly (non)blocking.