define basic time delta and time point classes

64-bit signed time values, in microseconds.

TimeDelta represents a duration.

DateTime represents a point in time, and understands the Gregorian
calendar (it can convert between a timestamp format and year/month/day
hour/minute/second/microsecond)
add some basic DateTime tests
use DateTime in utils format_date

This is mostly to avoid duplicating the calendar calculations
in utils.cpp and DateTime.cpp.
fix the description of format_date in LuaFormat
start adding support for file modification times to FileSystem
FileSystemPosix: get the modification time for files in Read(Dir), Lookup
expose file modification time to Lua from FileSystem.ReadDirectory
file dialog: display modification date/time in the file list
autosave: pick the next autosave number based on the most recent autosave

Untested, probably buggy, and probably more logically complex than it
needs to be.
datetime: add comparison operators to the DateTime class
extract DateTime -> game time conversion to a function in utils.cpp
datetime: add += and -= operators to Time::DateTime
FileSystemWin32: initialise file modification date field of FileInfo