Better timezone support for manipulating moments

This adds a second argument to setters that provides a hint to updateOffset to not change hours/minutes when crossing a tz boundary.  This is frequently desirable when modifying part of an existing moment object directly.

It further passes this argument whenever adding / subtracting days or months, fixing an issue with moment-timezone (moment/moment-timezone#28).  See the corresponding PR for moment-timezone here: moment/moment-timezone#53.
Merge pull request #1419 from kroo/develop

Pass updateOffset a flag to tell it whether to change the sub-day
units if adjusting the timezone. If you cross DST by day or larger than its
assumed you don't want to see offset change in the hour.

@changelog
@section bugfix
@description Better timezone support for manipulating moments
Default ignoreOffset = true for dates, months and years

When you do moment.date(5), you'd expect the time-of-day to remain the same
even across DST. This only affects users of moment-timezone
zone setter can now skip adjusting the hour

When you change the zone you'd expect the time to remain the same, but if
you're doing something low-level you might want just the zone offset to change.

Add a second argument to zone that would allow the caller to disable adjusting
the hour when setting a zone.
Merge pull request #1468 from ichernev/feature/allow-zone-skip-adjust

@changelog
@section enhancement
@description zone setter can now skip adjusting the hour
Merge pull request #1467 from ichernev/bugfix/default-ignore-offset

@changelog
@section bugfix
@description Default ignoreOffset = true for dates, months and years