decode: Clear error message upon every new session run.

When a decoder throws an exception, i.e. srd_session_send() returns an error,
PulseView shows a red "Failed to initialise decoder" banner in the
decode trace at the moment.

This can happen when e.g. invalid option values are set in the PD popup,
or invalid probe combinations, and so on. However, after the user resolved
the error condition (e.g. selected a proper set of probes / options) the
red error banner would still remain visible and no re-decoding would happen.

This patch fixes that.
decoderstack.cpp: Improve two error messages a bit.
pv::data::decode::Annotation: Add row() and set_row().

Keep track of the "annotation row" this annotation is supposed to be
displayed on.
pv::data::DecoderStack: Set _row for each annotation.

For each annotation, keep track of the "annotation row" it belongs to.
pv::view::DecodeTrace: Draw annotation rows according to PD metadata.
pv::data::decode::Annotation: Add pd_index() and set_pd_index().
Draw stacked decoder traces below the other PDs (avoids overlap).

Every stacked decoder is drawn below the PDs it stacks upon, so that all
of the annotations of all PDs in the stack can be seen, and no overlap
happens.
Extract only the subset of annotations that are in view.

To achieve this lists of annotations have been added sorted by
start sample and end sample
Fix bug #235. Add shortcut keys for View/Zoom In (Ctrl++) and View/Zoom Out (Ctrl+-)

These are the shortcut keys for zoom in and out as suggested by
QT. Works with the normal keyboard and numpad keys.

Seems that the preferred simple + and - keys have an issue.
While the - key is working and displayed in the menu as expected,
the + key is zooming but not displayed at View/Zoom In
in the menu. I've tried several attempts.
Split annotation data set into rows, and improved painting.

This has allowed the removal of Annotation::_row and Annotation::_pd_index
Improved row annotation colouring
Added decoder show/hide icons
Added show/hide decoder button
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