Fix crlf handling, particularly when autocrlf=true

This contains a number of tests for using autocrlf=true when the file in the index already has CRs in it. Core git checks the index and does not strip CRs if the file in the index already has CRs. This makes us behave in the same manner. This really has three pieces in it:

1. Store the repository and path in the crlf filter object so we have it later on
2. Look up the data in the index when applying the filter and don't CRLF filter if there is already a `'\r'` in the index
3. Fix `git_blob_create_fromworkdir()` to use the relative path as the hint for looking up file attributes instead of the full path.

This PR includes the tests written by @csware for issue #1397 

This also updates to the latest version of clar and has a number of other test suite cleanups.