better "valid" and "exported" tag handling
This series adds automatic handling of "valid" and "exported" tags via git tags.
The first couple of commits are some code cleanup. Then support for git tags is added.
Then a "--valid" option is added to the commit command to mark that a commit is valid. A check is added to the "export" command to fail to export if the report is not marked as valid.
Finally, the "export" command will auto-tag the commit of the exported report.
The tags are handled internally with the new Report.is_valid()
and Report.was_exported()
methods.
Best to review each commit individually.