Update the PublishDate on first Publish

Currently, if a user does the following:

1. Creates a new post
2. Spends a couple of days/weeks writing the post
3. Publishes the post

The date for "Published on" ends up being the date the post was originally created, and not when the post was actually published.

This commit resolves this issue by updating the PublishDate to 'now' when the post is first published. It only does this if the PublishDate is in the past to avoid updating it when the user has manually specified for the post to be published at a later set date.
$this->owner isn't needed here. Also, can you change ->obj() to ->dbObject()? According to the docs, obj won't return an object when no value exists which would break the InPast() call.