Extract the file_* methods to Repository::Path

Since these methods are not directly related to Repository manipulation
but instead to a particular path in that Repository. The methods have
been extracted into the Path class.

A small amount git specific code remained in the follow Repository methods:
* write_commit_message
* commits_for
* last_commit_for
* blob_at

This has simplified the testing.
And the Server has been updated to use Path and the new methods.