Revert "Properly handle negative years when printing JS Dates to strings."

This reverts commit f06daaf3d8747c6c0a277bf055c80d8f2e7bcc81.

The only things actually specified by the ECMAScript standard on dates
are:

1. Reparsing a date output from any of the to*String() functions has to
result in the same date representation.

2. The ISO 8601 standard has to be followed for the ISO format.

Currently we clearly don't follow rule 1. Date.parse(d.toString()) will
not yield the same as d.valueOf() for negative dates.

The ISO 8601 standard clearly has a year 0 while common human language
has not. All non ISO date representations are considered
"implementation-dependent" in the ECMAScript standard. We can thus
define the relation between our representations and the ISO standard any
way we like. If we try to match up the dates so that the negative years
look equal in each representation we cannot properly interact with QDate
for dates in the year 0 as that doesn't exist in QDate. We can, however,
choose not to make the dates look equal. That means a date with a
negative year will be "one off" when represented in ISO 8601. "333 BC"
in human language is "-332" in ISO 8601. Our internal representation is
aligned to ISO 8601 and the to*String() methods may output something
else. That means we can easily set the year in ISO 8601 sense from the
Date constructor as well as from setYear() and setFullYear().

This, of course, is somewhat unintuitive and also differs from most
other JavaScript implementations (which don't have to interoperate with
QDate). However, it is still correct.

Change-Id: I5fc26b709a486cb520a075918b184a80bec56c9b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Fix QQmlPropertyCache population with gadgets

The property cache excludes the destroyed() signals as well as the deleteLater()
slot from the accessible methods. It does that by comparing the method index
against the indices of these signals/slots, which works as long as every
meta-object is through some way derived from QObject's meta object. However
that's not the case for gadgets, where these indices don't apply and
will instead accidentally hide methods.

Change-Id: I5f2b3f578192ff0df607af67832389c30bb11beb
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>