Add bindings for new device options

Add device option bindings for the SR_CONF_TRIGGER_SLOPE,
SR_CONF_EXTERNAL_CLOCK and SR_CONF_CLOCK_EDGE settings.  For
now, the slope and edge settings use the generic combo box
widget.
Fixed decoder probes auto-select logic

This fixes bug #310
Improved decode annotation colouring

This fixes bug #311
RowData: Removed _ann_start_index and _ann_end_index

This fixes #308
Added some missing fromUtf8s

This fixes the issues mentioned in #307
Do not attempt to decode when required probes have not been specified

This fixes 204
DecodeTrace: Draw the error over the unresolved period
Wrapped sr_dev_inst in a class: pv::DevInst
Fix some disappearing annotations
Moved config getting/setting into DevInst
Added DevInst::config_changed signal
SamplingBar: Improved event loop protection
Updated the sample rate selector when the config is changed
Added DevInst pointer to Signal
Removed _session.get_device calls from LogicSignal
Removed SigSession from Trace
Moved all sr_probe modification into pv::DevInst
SweepTimingWidget: When the exact value isn't available try to set a close match
Notify that config change when probes are enabled/disabled

This fixes 296
Preallocate memory before samples are received.

Preallocating memory for samples when a capture is started improves performance during the capture, as realloc() is called only once.