Add Unit Tests for DateTime functions and test public
methods for common cases.

Tests invalid DateTime objects.
Tests for accurate millis values
Fixes leap year bug.
Converts to types that don't wrap (unsigned long long).