Stubbed out ActiveModel (loc 629)

Rather than making the tests dependant on ActiveModel, we
introduced the stub_module method that allows us to generate
empty modules on the fly for use in tests.  It's then used
to stub out ActiveModel modules used by Post.

The immediate benefit of this is that the tests run faster.
Added publication date to Post (loc 725)

In order to be able to show posts ordered by time stamp, we added
a publication date attribute on post.

It is set to the system date when the post is pubished but we need
to have control in our tests so we inject a 'clock' object to
Post#publish so we can control the behaviour when we need to and we
default it to DateTime when we don't.
Ordered posts by date in the blog (loc 849)

Posts are ordered by date newest to oldest and only the 10 most recent are shown.