Default to {} on empty --data-file
Default to {} on empty --data-file

If the file supplied via --data-file is empty, we now print a warning
and then write an empty JSON object to it "{}" instead of crashing hard.
This seems like a decent default and also makes testing easier, since
both the --file and the --sqlite backend behave identically then.

channable/icepeak,channable/icepeak,channable/icepeak