Set timezone in base object at creation.

The previous approach, calling set_time_zone(), was *HORRIBLY* slow due to all
the daylight savings time calculations DT had to perform.

It was leading to results like:

```
```

... because of all the objects DateTime was flinging about.

This way works almost instantaneously.

Tests still fail because of timezone fun - it would appear that the resulting
timestamp we're seeing is that of the local timezone - may need to fake that in
the tests so that we don't fail if the user running the tests is in a different
timezone!