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
datetime: remove some unused TimeDelta methods
Add missing files to project

(commit edited by John Bartholomew <jpa.bartholomew@gmail.com>)
(original commit included removal of EquipSet.h from the VC2013 project)
snprintf is not defined unless you include libs.h
CustomSystemsDatabase gives out only constant CustomSystems.
Const-correctness for Factions/FactionsDatabase.
datetime test: print out values of the TimeUnit enums for manual checking
datetime: use 'll' suffix on TimeUnit constants to make GCC 4.7 happy

Otherwise GCC 4.7 never promotes the values to 64-bit and reports errors
due to overflow.