discovery: convert App.Labels from map to types.Labels.

As App will be used by various functions in the future, make it consistent with
the spec and use types.Label.
In this ways the labels can be validated.
discovery: Add a NewStringFromApp function.

This functions will be used in future.
The name will be reproducible: apps with same name and labels will have the
same string.
The first labels will be (in order): version, os, arch and the other labels
will be ordered by name.