add two `ls` test cases which show a fault in HgRepo

HgRepo.ls appears to have trouble with the `directory` flag. In at least the
case where the desired directory is one dir deep, it lists the contents of
the directory rather than returning [{'type': 'd'}]

GitRepo and SvnRepo pass this test case.
implement issue #16, add VCSRepo.private_path property
implement reporting last changed commit for GitRepo.ls()

This is issue #17
test cases to expose issue #19
clean up GitRepo.ls() a bit
fix bug in GitRepo.ls() when path ends with / and directory=False

non-directories were being ignored
fix issue #19, fix HgRepo.log() with directory=True on non-root paths
Merge branch 'develop' into ls-report-commit
add test cases for VCSRepo.ls() with commit in report
correctly report commit on root
report commit in HgRepo.ls()
speed up reporting last commit by a bit - can do better
correctly report commit for / when directory=True
drastically speed up reporting commit for ls()
cache file revision hashes like we do for git
make git more consistent with hg
report last commit in ls()
improve BasicTest.test_ls_report_commit* test cases
pass HgBasicTest.test_ls_report_commit5
add documentation for VCSRepo.ls() with 'commit' in report