Handle `core.autocrlf=input` when checking out

Per #2109 , it appears that we were a little deficient when checking out when `core.autocrlf=input` and the `text=auto` attribute is specified.

This PR ensures that we handle `core.autocrlf=input` and `text=auto` when checking out.  This adds tests for the combinations of `core.autocrlf` of `false`, `true` and `input` along with the `text=auto` attribute being set and unset, both for writing to the working directory and into the repository.