Add some ProjectFile tests.

 * ProjectFile tests:
    - get_absolute_path
    - get_relative_path
    - Loading different project file versions.
 * Note: Those tests require the test program to be executed directly from
         tests/ directory.

 * ProjectFile constructor now throws LoadingError on failure.

 * CMake:
    - copy_dirs: Recursively copy directory content.
    - get_files_recursively: Recursively list all file content in specified
                             directory
Synchronize valaparser from 6747b2f7.