CommitService: implementation for ListLastCommitsForTree

It can probably be improved depending on ordering promises
of the manifest, and the possibility to use treemanifest at
some point.

This is still partial, because `path` can really be any
Git pathspec, and we don't honour the "literal pathspecs"
option (the current one is in `GlobalOptions`).

Closes #14
2 jobs for !39 with topic/default/ListLastCommitForTree in 26 seconds
detached
Status Job ID Name Coverage
  Compat
failed #170185
allowed to fail
tests-hg-default

00:00:16

passed #170184
tests-hg-stable

00:00:26

100.0%
 
Name Stage Failure
failed
tests-hg-default Compat
    writing top-level names to pip-egg-info/mercurial.egg-info/top_level.txt
writing manifest file 'pip-egg-info/mercurial.egg-info/SOURCES.txt'
Python headers are required to build Mercurial but weren't found in /usr/include/python3.7m/Python.h

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-25j5y3g_/Mercurial/
Running after_script
Uploading artifacts for failed job
ERROR: Job failed: exit code 1