feat(minErr): allow specifying ErrorConstructor in minErr constructor

In some cases, the type of Error thrown by minErr is meaningful, such as in $q where a TypeError
is sometimes required. This fix allows providing an error constructor as the second argument to
minErr, which will be used to construct the error that gets returned by the factory function.
chore($q): convert thrown Error to $minErr when calling $q constructor without resolver
chore($q): replace plain TypeError with minErr+TypeError in cyclical resolve check
docs($q): correct @ngdoc annotations for methods of $q

Closes #8782
Closes #8784
chore(tests): use jquery again in e2e tests

jQuery was not included in e2e tests, but we did not notice it
as Angular fell back to jqlite…
feat(filter): allow to define the timezone for formatting dates

Angular used to always use the browser timezone for
`dateFilter`. An additional parameter was added to allow to use
`UTC` timezone instead.

Related to #8447.
fix(input): use year 1970 instead of 1900 for `input[time]`

BREAKING CHANGE:

According to the HTML5 spec `input[time]` should create dates
based on the year 1970 (used to be based on the year 1900).

Related to #8447.
feat(input): allow to define the timezone for parsing dates

Angular used to always use the browser timezone when parsing
`input[date]`, `input[time]`, … The timezone can now be changed
to `UTC` via `ngModelOptions`.

Closes #8447.
fix(input): allow to use seconds in `input[time]` and `input[datetime-local]`

The HTML5 spec allows to use seconds for `input[time]` and `input[datetime-local]`,
even though they are not displayed by all browsers.

Related to #8447.