Update Dates.cs

The ToUnixTime() method assumed the current timezone as GMT 0. The method now corrently converts the specified DateTime to universal time. The start of the UNIX epoch is now also based on UTC rather than the current timezone.

Another thing with the method ToUnixTime(). The return type is a double, but the scenarios I can think of, I would only need a long (no decimals). Is there a particular reason for the return type being a double?