fix ALDPackageDefinition::Get*Files() for file-sets
support output of files in hierarchical form
change GetTargets() output to be flat

Analogue to file handling, there is now a method GetTargets() with
flat, and a method GetTargetsHierarchy() with hierarchical output.
add a class for handling version-switches

In ALD schemas, a version can be specified as a single version,
a range or a list of versions. This class can handle this and
tell the caller if a given version matcvhes the specified data.