implement ensure parameter for datacat defined type

since `datacat` manages a file, it can be useful, for symmetry to pass an
ensure parameter down to that file.

Since it can be useful to manage the *existence* of such such a file in
a module, the `datacat` type has an `ensure` parameter that defaults to
`file` (an alias for `present`). `ensure` can also be set to `absent`.
In that case `datacat` will make sure the file *doesn't exist* and will
not collect anything with `datacat_collector`.