Fixed timezone handling date(), now(), ago() and from_now()

Previously all datetimes created by these helpers were based on datetime.now(), leading to strange results where the value was stored in mongo and then reloaded when running on a machine not in UTC.

This change makes all datetimes use utcnow() ensuring the values saved to the DB are consistent and any TZ-aware code which then makes use of those values has predictable behaviour.

cc @byels