Introduce function opk_read_pair, remove function opk_read_param

Previously, libopk was generating a linked list of all key/value
pairs when loading the metadata; then opk_read_pair was used
to retrieve the value of the key passed as parameter.

This design has several drawbacks:
- the whole meta-data is processed and all key/value pairs are
  stored in memory when the meta-data is opened, even if we only
  need to retrieve one pair;
- you need to specify the key which value should be retrieved, so
  you cannot retrieve a value with an unknown key;
- it is therefore near impossible to implement bindings for other
  languages like Python.

With the new design, opk_open_metadata only open an OPK's .desktop
file and verify that it contains the right header; it does not
pre-process the whole metadata.

Instead of calling opk_read_param with the key which value should
be retrieved, the function opk_read_pair must be used.
It will set the (const char *) pointers passed as reference
to the function to the next key/value pair that has been read on
the .desktop's meta-data. It will also set the (size_t) variables
passed as reference to the length of the key/value char arrays;
retrieving the length is needed here are the char arrays are not
null-terminated strings but pointers to the file's content.