discovery: do not set defaults for os and arch and use only fully renderable meta templates.

os and arch can be optional as there can be "noarch" (without machine dependent code) aci.

I'm imagining that in my repository I can have also some "noarch" packages.
For getting this, using meta discovery, I should provide a meta like this:

<meta name="ac-discovery" content="example.com https://storage.example.com/{name}-{version}-{os}-{arch}.{ext}">
<meta name="ac-discovery" content="example.com hdfs://storage.example.com/{name}-{version}.{ext}">

In this way, if I'm asking for an ACI providing a name but not an os and arch the first template should fail as not completely renderable (os and arch cannot be evaluated) but the second one will work.
The second patch does this.

Plus probably the labels in meta can have any name and values so this patch will also create the template vars slice from all the available labels instead of only some predefined ones (name, version, os, arch). Or am I wrong and only some well known labels should be used (if so I think that the spec should clarify this).

Thanks!