cmake: Dynamically set glib version.
Allow versioned package dependencies (at the moment only internal).
Use %u for formatted enum value output (bug_msg).
Improve PkgChoice and PackageInfo correlation.

 * Add PkgChoice field in PackageInfo to easily switch between both data
   structures.
 * Again split up project loading in two parts:
    - Loading of project file.
    - Initilizing of project data (source files, completion etc.).
 * Make the partly loaded ValamaProject a field in ProjectTemplate. Later this
   will be used to fully load the project when selected.
 * Add (optional) description to package choice.
 * Fix ordering of PackageInfo objects (use custom compare_func).
 * get_choice: Also usable if Guanako project is not initialized.
   Version checks are still missing and CodeContext check is not necessary.