fx2lafw: Rename trigger constant.
Add new triggering framework.

The new triggers consist of a set of structs and an API to manipulate
them.  Both logic and analog triggers are supported, in an unlimited
number of stages.

A single struct sr_trigger containing its stages and triggers is then
added to the session.

In case of a driver where the hardware supports triggering, the struct
is then converted and used to arm the hardware trigger. Drivers without
hardware trigger support, such as fx2lafw or multimeter drivers, use it
as the basis for a software-based trigger implementation instead.
Rename SR_CONF_TRIGGER_TYPE to SR_CONF_TRIGGER_MATCH.

Drivers supporting triggering need to implement this in config_list()
and return an array of int32_t consisting of SR_TRIGGER_*.
Remove obsolete API call sr_dev_trigger_set().

Triggers are now set on the session, not on a channel.
Remove obsolete API call sr_parse_triggerstring().

Since triggers are now passed to libsigrok with an API, this moved
to sigrok-cli.
Remove dead code from session read.

The "trigger" keyword was supported in theory, but in practice nothing
ever wrote it, so it was never used.
asix-sigma: Use new trigger API.
chronovu-la: Use new trigger API.
fx2lafw: Use new trigger API.
ikalogic-scanalogic2: Use new trigger API.
ols: Use new trigger API.
sysclk-lwla: Use new trigger API.
zeroplus-logic-cube: Use new trigger API.
trigger: Fix memory leak.
session: Free session-wide trigger if set.
Add new software trigger as a library-wide facility.

This is strictly an internal feature, for use by drivers for hardware
that doesn't have its own trigger mechanism.
fx2lafw: Use new library software trigger.
saleae-logic16: Use new library software trigger.
saleae-logic16: Fix acquisition with fewer than nine channels enabled.
fx2lafw: Fix sample count.