Rework timestamp labels
There were multiple bugs
- the default date format was wrong (dropped now cmopletely)
- most of the timestamps did a fallback to the date so most of the relative code was unused. We now never fall back but always use relative timestamps (as the original code intended).
- dropped several magic constants
- allows more flexibility for translators prompted by !708 (closed)
- fixes missing space after "Over " and "Almost " (which was never noticed due to the code (accidentally) being unused
- add tests
Fortunately this breaks fewer translatable strings as expected.
Edited by Guido Gunther