strutil: Correctly parse floating point frequencies in parse_size_string().

parse_size_string() incorrectly parses a real number, e.g. 1.5 kHz ends up
being 1Hz.

This patch fixes parse_size_string() to take the fractional part as well into
account. The fractional part is parsed as an double precision floating point
number while ignoring the locale.
device: Pass sdi as an function argument to config_list in dev_has_option()

With drivers that support multiple devices we need to know the device model
while listing options. That information is most of the time saved in the private
part of the dev_inst structure.

Pass the pointer to the dev_inst structure as an function argument so we have
access to this information.
strutil: Add function to parse floating point numbers while ignoring the locale.

Most of the supported gear uses the ANSI C locale for communication, and if the
client sets up an incompatible locale parsing would fail.

This function ignores the client's locale and parses floating point numbers
using the ANSI C locale. This function should be always used when parsing
floating point numbers coming from the instrument.
scpi: Use sr_atof_ascii() instead of sr_atof().
hameg-hmo: Handle floating point numbers while ignoring the locale.
hameg-hmo: Close the device after initial scan.

The device is after a scan left open and clients that don't call unconditionally
dev_open() will never fetch the initial device state.

Close the device after the scan so clients know they need to open it.
hameg-hmo: Send the DF_END packet in acquisition_stop()

The DF_END packet was send out after all configured frames were fetched, but
devices may stop the acquisition at any point in time and an DF_END will not be
send out in this case.

Send the DF_END packet inside of acquisition_stop() so this can't happen.
hameg-hmo: Change the way vdiv and timebase are saved.

The current vertical division setting (per channel) and the timebase are stored
as a floating point number. This is suboptimal since clients expect us to send
this information to them in form of a rational number.

Store only the index of the current setting since all the supported settings are
already stored inside of an array.
scpi: Add CMD_GET_SAMPLE_RATE to the command enum.
hameg-hmo: Add support for sample rate fetching.
hameg-hmo: Update the sample rate when the channel states or the timebase change.

The sample rate on the Hameg scopes changes depending on the number of channels
turned on and on the current timebase.

Update the sample rate if any of the above change.
hameg-hmo: Advertise the frame limit option.
hameg-hmo: Expose more options with config_get().

This patch exposes the TRIGGER_SOURCE and COUPLING options via config_get().
hameg-hmo: Reset the number of acquired frames in acquisition stop.
hameg-hmo: Silence warning about format security.

The command for fetching the sample rate while in single shot mode doesn't take
an argument so the snprintf here is redundant.
usb: Fix two compiler warnings on Windows.

  CC       libsigrok_hw_common_la-usb.lo
usb.c:241:18: warning: no previous prototype for 'usb_thread'
[-Wmissing-prototypes]
 SR_PRIV gpointer usb_thread(gpointer data)
                  ^
usb.c:256:13: warning: no previous prototype for 'usb_callback'
[-Wmissing-prototypes]
 SR_PRIV int usb_callback(int fd, int revents, void *cb_data)
             ^
hameg-hmo: Fix two compiler warnings on Windows.

  CC       libsigrok_hw_hameg_hmo_la-protocol.lo
api.c: In function 'auto_find_usb':
api.c:70:39: warning: unused parameter 'vendor_id' [-Wunused-parameter]
 static GSList *auto_find_usb(uint16_t vendor_id, uint16_t product_id)
                                       ^
api.c:70:59: warning: unused parameter 'product_id' [-Wunused-parameter]
 static GSList *auto_find_usb(uint16_t vendor_id, uint16_t product_id)
                                                           ^
rigol-ds: Fix check for probe group validity.
rigol-ds: Advertise SR_CONF_LIMIT_FRAMES support.
rigol-ds: Separate function to compute analog frame size.