TimeZone.GetUtcOffset daylight savings improvements

When daylight savings ends, the delta (hour usually) that clocks jump backwards is repeated twice.  So for example at 3am clocks jump back to 2am.

This creates an ambiguous time offset from utc where between 2am-3am clocks could be either UTC + X or UTC + X+DST.   TimeZone.GetUtcOffset resolves this by assuming the standard offset is in affect.

This patch update TImeZone to match the behaviour of Microsofts .NET implementation.


All my changes in https://github.com/mono/mono/pull/802 are under the MIT/X11 license