Expand time-stamp unit tests to cover all formatting options

* time-stamp-tests.el: Expand unit tests to cover all formatting options.
These tests validate time-stamp-pattern formatting that has existed
since at least Emacs 22 (released in 2007).  The tests cover both
documented behavior and behavior implemented to support future migrations.

* time-stamp.el (time-stamp-string): Add a second argument (TIME) to
open a testing seam.  Have the unit tests call this public function.

* time-stamp.el (time-stamp-string, time-stamp-string-preprocess):
Remove the second pass through time-string--format.  (Previously both
functions called it.)  It was used only to handle "%", but this is now
handled by having time-stamp-string-preprocess not double it.
Not doubling the "%" in time-stamp-string-preprocess fixes the padding
of "%2%", which was discovered by the new unit tests to be wrong.
1 job for master in 53 minutes and 28 seconds (queued for 3 seconds)
Status Job ID Name Coverage
failed #3425


Name Stage Failure
test-all Test
make[2]: *** [check-doit] Error 1
Makefile:319: recipe for target 'check-doit' failed
make[2]: Leaving directory '/builds/emacs/emacs/test'
Makefile:294: recipe for target 'check-expensive' failed
make[1]: *** [check-expensive] Error 2
make[1]: Leaving directory '/builds/emacs/emacs/test'
Makefile:959: recipe for target 'check-expensive' failed
make: *** [check-expensive] Error 2
ERROR: Job failed: exit code 1