metadata: allow empty value sets

So far, one could not make the difference betweeen a metadata key
set to empty and an unset one. This is problematic in e.g. orogen
where we have cases where the include list is empty (but is known
to be empty), as e.g. for /double.

This commit allows to make the difference, as well as to set a
metadata key to empty. It does not change the behaviour of existing
code as the new behaviour is dependent on
ruby: fix documentation