Making moment#zone a setter

This change allows you to set the intended offset for a moment.

```javascript
moment().format();           // 2013-03-08T20:36:21-08:00
moment().utc().format();     // 2013-03-09T04:36:21+00:00
moment().zone(120).format(); // 2013-03-09T02:36:21-02:00
```

Additionally, because the offset changes during daylight saving time, there is a callback hook for external libraries to use to update the moment whenever it is mutated.

```javascript
moment.updateOffset = function (m) {
    // check if the offset needs to be changed
    if (dst) {
        m.zone(60);
    } else {
        m.zone(120);
    }
};
```

The way the offset setting works is by switching the moment to utc mode and adding the offset to the moment.

This is kind of hacky, and it requires that we correct for the offset whenever exporting the unix timestamp or the original date.