Date proto implementation

This fixes #669

Implemented the rest of the `Date` prototype.

- Methods to set time (`setSeconds`, `setHours `, etc)
- Methods to set date (`setFullYear`, `setMonth`, etc)
- Longer constructor (`new Date(year, month[, ...])`)
- More formats (`toLocaleString`, `toTimeString`, etc)
- UTC setters (`setUTCHours`, `setUTCMinutes`, etc)
- Timezone support (`getTimezoneOffset`)
- UTC constructor (`Date.UTC(year, month[, ...])`)
- Tested in multiple timezones

When running the tests, be sure to try with some different timezones (`TZ=Europe/Stockholm make test`).

- America/Los_Angelesi (UTC-08:00)
- America/St_Johns (UTC-03:30)
- Asia/Kabul (UTC+04:30)
- Europe/Stockholm (UTC+01:00)
- Hongkong (UTC+08:00)