Fixed "Forward Transition" construction of DateTime objects.

This fixes the issue in
https://wiki.php.net/rfc/datetime_and_daylight_saving_time#forward_transitions
There is a period during transition to DST where a time (such as 02:30) does
not exist. PHP already calculated the correct timestamp for this, but failed to
"rounded forward" to the existing correct hour value.
Always reset those parameters.
Fixed forward transitions in diffs.
Group those tests a bit better, as some of the bd ones wanted a "ST" feature that doesn't exist yet.
Split up tests into their different categories.
Fix backwards transition diffs.
Move add/sub to timelib.
Fixed a few DST changeover issues.
Marking those two as XFAIL for now.
Merge branch 'date-time-dst-rfc' into PHP-5.4

This is a partial resolve of some DST issues, plenty of things to do, but as
this *does* fix a few issues it's worth merging it already.
Merge branch 'PHP-5.4' into PHP-5.5

Conflicts:
	ext/date/php_date.c
Fixed bug #65199 (Wrong Day of Week) and fixed bug #63391 (Incorrect/inconsistent day of week prior to the year 1600)
Merge branch 'PHP-5.4' into PHP-5.5
Added validation of class names in the autoload process
Merge branch 'PHP-5.4' into PHP-5.5

* PHP-5.4:
  Added validation of class names in the autoload process
Fixed bug #65768: DateTimeImmutable::diff does not work

This commit also prevents user classes from directly implementing
DateTimeInterface, because ext/date relies on classes implementing
it to support certain internal structures.
Fixed bug #66041: list() fails to unpack yielded ArrayAccess object

Yield return values now use IS_VAR rather than IS_TMP_VAR. This
fixes the issue with list() and should also be faster as it avoids
doing a zval copy.
Cleanup generator closing code a bit

All code dealing with unfinished execution cleanup is now in a separate
function (previously most of it was run even when execution was properly
finished.

Furthermore some code dealing with unclean shutdowns has been removed,
which is no longer necessary, because we no longer try to clean up in
this case.
- Fixed bug #65923 (ext/socket assumes AI_V4MAPPED is defined)
Merge branch 'PHP-5.5' of git.php.net:/php-src into PHP-5.5