Fix error message
Smarter output detection for generated projects

Previously, specifying a simple target name for a regular project would
store the (zip) archive in a file matching the target name. Only adding a
slash at the end of the name allows to extract it as a directory. It
turns out that such convention is not easy to catch and if a simple name
is provided on the command-line, the user probably wants to create a
directory with such a name with the content of the project.

Note that if a build file is required and the name does not have any
extension, we still store a file with the required name as auto-detecting
the extension to use is not that easy.

Fixes gh-2056
Detect list of values

Some properties are being exposed with a set of values that are either
constrained (i.e. for enum type) or not in which case the values serve
as a hint (WARN, DEBUG, etc from logger.level is a good example).

If the property type is an enum, the list of values are now being exposed
in the meta-data as a "values" array. An additional domainType attribute
is also available to further qualify the values. The 'enum' domain type
defines that the values are constrained. Another domain type called
'hints' exists to specify the the values are hints and the user is free
to choose a different value.

Such information can also be set using manual meta-data.

Closes gh-2054