Use the readtags library to parse ctags files
Use the official 'readtags' library from ctags to parser files in the
ctags file format. This allows us not to worry about parsing itself
and just extract the information from ctags files we need.
In addition, this patch also reads some extra ctags fields we are interested
in. It also detects scope key based on the kind used by the given language
(not the hard-coded values that are valid for C/C++ only).
Finally, this patch also detects the "language" field that specifies
for which language the given tag is in the case that the tags file
contains tags from multiple languages.
When loading language this way, we have to postpone the update of
scope ('s' ctags field) until we get the language field because its key
is a kind name that is specific to the used language.
Note that even after this change tags files still have to be named so
that they contain the language in the file's extension because this is
needed for other tag file formats supported by Geany. It will, however,
be overridden by the "language" field.
Co-authored-by: Colomban Wendling <lists.ban@herbesfolles.org>