plugins: Create the IIO context in the init() function, not identify()

By moving the context creation to the init() function, we can create the
IIO contexes in parallel once the available plugins have been
identified (and once the plugins are created in a thread).

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
Make all plugins initialize in threads

This considerably reduces the time needed to start the application,
when the network backend of libiio is used.

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
plugins/daq2: Update to use new INI functions

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
plugins: Fix some warnings

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
libini2.c: Added utility function read_token_from_ini

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
plugins/fmcomms2: Save/restore plugin-specific data to/from INI

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
plugins/daq2: Save/restore plugin-specific data to/from INI

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
plugins/fmcomms1: Save/restore plugin-specific data to/from INI

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
plugins/fmcomms2_adv: Save/restore plugin-specific data to/from INI

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>