Fix d3.time.day for Firefox in Europe/London.

The UK was on permanent BST from February 1968 until October 1971.  This
is handled differently by Chrome and Firefox.  Chrome appears to apply
"current" DST rules, hence new Date(0) is 00:00.  Firefox thinks it is
in BST, and thus new Date(0) is 01:00, and in fact there appears to be
no such thing as a local time of 00:00 on Jan 1st, 1970.

This difference in interpretation caused d3.time.day.floor to return
01:00 instead of 00:00 due to internally using new Date(1970, 0), which
is equivalent to new Date(0).

This led to the discovery of other timezone-related bugs, where a DST
change caused a day to start at 01:00 instead of 00:00.  Up until now,
we had been assuming that every day had a midnight, but this is not the
case, e.g., Fri Mar 28 2014 in Asia/Amman.

This assumption was present in d3.time.scale, where a date with a
non-zero hour was being formatted as "%I %p", even if it was a date
returned by d3.time.day.floor.

To fix the Fi
Slightly shorter.
Checkpoint DST tests.
Add a few more methods to time.dst.
Fix interval.range for DST.