Friendly date error

Throw a friendly error message when the date in the YAML front matter of a post is invalid (similar to the behaviour when the date in the filename is invalid).

Also, use `relative_path` instead of `path` for both errors to make it easier to find the infringing file.

Addresses #2641.