Introduce core.safecrlf handling

This patch introduces "safe crlf" handling:  if `core.safecrlf` is set, we check the reversibility of the CRLF clean filter.  This is done by running the cleaned data through the CRLF smudge filter, comparing that data to the workdir contents.  If these contents differ, the filter fails.