annotate: build format string separately from annotation data
This prepares for porting to generic templater API.
Note that we cannot use '%*s' to pad white spaces because it doesn't take
into account character widths, as described in
4f5a6df2af92.
To run the tests, do:
cd tests/
python run-tests.py
See http://mercurial.selenic.com/wiki/WritingTests for
more information on writing tests.