dvcs.latest_commit takes only path; can return commit for repo file

With this change only a path argument is accepted, no more of that
wishy-washy repo_or_path stuff.
If the path represents a file rather than a directory (and if the
file is actually inside a repo) the latest commit for that file
is returned.