Lint: allow missing name/version

these may be specified from the context, so depending on where
the file lies checking them doesn't make sense.

Also, fixes bug where files without name or version couldn't
be written back.
Closes #1760