This has come up in pandas.Timestamp (which subclasses datetime).  The issue is internal consistency and round-trips.  Intuitively, we would expect:

```
a = datetime.utcnow()
b = a.timestamp()
c = datetime.utcfromtimestamp(b)
assert a == b
```

but this fails.  (Note: it works for `datetime.now()` with `datetime.fromtimestamp()`, though that is partially because of weird-to-me behavior of `timestamp()` for naive datetimes).

It would succeed if utcnow and utcfromtimestamp returned tz-aware datetime objects.  Thoughts?