Gofmt, handle case where data-dir does not exist or is empty somewhat, and allow DataFile1 methods to work on values or pointers